tp5 WAP+PC支付宝支付

对应的配置请自行查看官网文档配置,注意密钥加密方式为RSA2即可
1、WAP

  		require '../extend/alipay/wappay/service/AlipayTradeService.php';
        require '../extend/alipay/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php';
        $amount = $this->request->param('total');
        $order_id = $this->request->param('order_id');
        $return_url="http://xxx";
        $appid=config('base.web_AliAppid');
        $prkey=config('base.web_rsaPrivateKey');
        $pukey=config('base.web_alipayrsaPublicKey');
	    $config = array (
	        //应用ID,您的APPID。
	        'app_id' => $appid,
	        //商户私钥,您的原始格式RSA私钥
	        'merchant_private_key' =>$prkey,
	        'notify_url' => "http://xxx/commodity/index/wapAliNotify",
	        //同步跳转
	        'return_url' =>$return_url,
	        //编码格式
	        'charset' => "UTF-8",
	        //签名方式
	        'sign_type'=>"RSA2",
	        //支付宝网关
	        'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
	        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
	        'alipay_public_key' => $pukey,
	    );
        //商户订单号,商户网站订单系统中唯一订单号,必填
        $out_trade_no = $order_id;
        //订单名称,必填
        $subject = 'alipay测试';
        //付款金额,必填
        $total_amount = $amount;
        //商品描述,可空
        $body = '商品描述测试';
        //超时时间
        $timeout_express="1m";
        $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setOutTradeNo($out_trade_no);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setTimeExpress($timeout_express);

        $payResponse = new \AlipayTradeService($config);
        $result = $payResponse->wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);

        return $result;

2、PC

 		require '../extend/alipay/pagepay/service/AlipayTradeService.php';
        require '../extend/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
        $amount = $this->request->param('total');
        $order_id = $this->request->param('order_id');
        $return_url="http://xxx";
       	$appid=config('base.web_AliAppid');
        $prkey=config('base.web_rsaPrivateKey');
        $pukey=config('base.web_alipayrsaPublicKey');
	    $config = array (
	        //应用ID,您的APPID。
	        'app_id' => $appid,
	        //商户私钥,您的原始格式RSA私钥
	        'merchant_private_key' =>$prkey,
	        'notify_url' => "http://xxx/commodity/index/wapAliNotify",
	        //同步跳转
	        'return_url' =>$return_url,
	        //编码格式
	        'charset' => "UTF-8",
	        //签名方式
	        'sign_type'=>"RSA2",
	        //支付宝网关
	        'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
	        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
	        'alipay_public_key' => $pukey,
	    );

        //商户订单号,商户网站订单系统中唯一订单号,必填
        $out_trade_no = trim($order_id);
        //订单名称,必填
        $subject = trim("测试");
        //付款金额,必填
        $total_amount = trim($amount);
        //商品描述,可空
        $body = trim("描述");
        //构造参数
        $payRequestBuilder = new \AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($body);
        $payRequestBuilder->setSubject($subject);
        $payRequestBuilder->setTotalAmount($total_amount);
        $payRequestBuilder->setOutTradeNo($out_trade_no);

        $aop = new \AlipayTradeService($config);
        $response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);

        //输出表单
        var_dump($response);

3、回调

 //异步通知回调--支付宝WAP和网页
    public function wapAliNotify(){
    
    
        $info = $this->request->param();
        if($info['trade_status']=='TRADE_SUCCESS'){
    
    
            //支付状态
            $res=Db::name('order')->where('order_id','=',$info['out_trade_no'])->find();
            if($res['status'] == 1){
    
    
                Db::name('order')->where('trade_no','=',$info['out_trade_no'])->update(['status'=>2,'transaction_id'=>$info['trade_no']]);
            }
            return "success";
        }else{
    
    
            return "fail";
        }
    }

猜你喜欢

转载自blog.csdn.net/zax_96/article/details/109051833