支付宝老版本demo md5签名验证手机网站和扫码支付

<?php  
namespace app\pay\Controller;
use app\pay\controller\Pay;

class Alipage extends Pay
{
  public function Pay($array)
  {
        $return = $this->getParameter($array);

        $mch_id='';     //PID
        $mch_key='';    //MD5key

        $url='https://mapi.alipay.com/gateway.do';
        $param=[
            'service'=>'create_direct_pay_by_user',     //wap手机支付  alipay.wap.create.direct.pay.by.user
            'partner'=>$mch_id, //PID
            '_input_charset'=>'UTF-8',
            'notify_url'=>$this->domain().'/Pay/Alipage/notifyurl',
            'return_url'=>$this->domain().'/Pay/Alipage/callbackurl',
            'out_trade_no'=>$return['orderid'],     //订单号
            'subject'=>'开发测试',  //标题
            'payment_type'=>1,
            'total_fee'=>$return['money'],   //交易金额
            'seller_email'=>'***@qq.com',    //支付宝帐号    
        ];

        ksort($param);
        $str=urldecode(http_build_query($param));
        $param['sign']=md5($str.$mch_key);
        $param['sign_type']='MD5';
        $payUrl=$url.'?'.urldecode(http_build_query($param));
        if(!empty($array['attach']) && $array['attach']=='json'){
            $msg='{"status":"ok","msg":"请求成功","payUrl":"'.$payUrl.'"}';
            exit($msg);
        }
        $this->setHtml($url,$param,'get');
    }

    /*
    *   同步跳转
    */
    public function callbackurl(){
        if($_GET['trade_status']=="TRADE_SUCCESS" || $_GET['trade_status']=="TRADE_FINISHED") {
            $this->EditMoney($_GET["out_trade_no"], 'Alipage');
        }else {
            $this->error("支付失败!",'https://www.baidu.com/');   
        }
    }
    /**
     *  异步通知
     */
    public function notifyurl()
    {
      $data=$_POST;
      file_put_contents('./log/Alipagenotify.txt',"【".date('Y-m-d H:i:s')."】\r\n".file_get_contents("php://input")."\r\n\r\n",FILE_APPEND);

      unset($data['sign_type']);
      unset($data['sign']);
      ksort($data);
      $str=urldecode(http_build_query($data));
      $mch_key='';  //商户密钥
      $sign=md5($str.$mch_key);
      if ($sign==$_POST['sign'] && $data['trade_status']=='TRADE_SUCCESS') {
         $this->EditMoney($data["out_trade_no"], 'Alipage', 0,$data['price']);
         echo 1;
      }else{
          echo 0;
      }
    }
  
}
?>

相关推荐

发表评论

路人甲

网友评论(0)