yii2.0 app上集成支付宝支付

Posted 李先森博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii2.0 app上集成支付宝支付相关的知识,希望对你有一定的参考价值。

1.首先从支付宝官网下载支付宝app支付sdk 地址 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hLEa5O&treeId=54&articleId=106370&docType=1

2.解压下载文件会得到几个文件夹

用到的文件有AopClient.php/AopEncrypt.php/AlipayTradeAppPayRequest.php 这几个文件

3.将解压好的文件放到yii/frontend下新建文件alipay下

4.修改要用到的文件的命名空间:

AopClient.php

AopEncrypt.php

AlipayTradeAppPayRequest.php

5.新建自己要用到支付控制器我的是orderController.php

注意:一定要引入修改的支付宝sdk

$aop = new AopClient;
        $aop->gatewayUrl = Yii::$app->params[\'gatewayUrl\'];
        $aop->appId = Yii::$app->params[\'appId\'];
        $aop->rsaPrivateKey = Yii::$app->params[\'rsaPrivateKey\'];
        $aop->format = Yii::$app->params[\'format\'];
        // $aop->charset = Yii::$app->params[\'charset\'];
        $aop->signType = Yii::$app->params[\'signType\'];
        $aop->alipayrsaPublicKey = Yii::$app->params[\'alipayrsaPublicKey\'];
        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        $request = new AlipayTradeAppPayRequest();
        //SDK已经封装掉了公共参数,这里只需要传入业务参数
        $bizcontent = json_encode([  
            \'body\'=>$order[\'order_sn\'],  
            \'subject\'=>\'App支付测试\',  
            \'out_trade_no\'=>$order[\'order_sn\'],//此订单号为商户唯一订单号  
            \'total_amount\'=> $order[\'order_amount\'],//保留两位小数  
            \'product_code\'=>\'QUICK_MSECURITY_PAY\'  
        ]);
        $request->setNotifyUrl("商户外网可以访问的异步地址");
        $request->setBizContent($bizcontent);
        //这里和普通的接口调用不同,使用的是sdkExecute
        $response = $aop->sdkExecute($request);
        //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题echo htmlspecialchars($response);
        echo $response;//就是orderString 可以直接给客户端请求,无需再做处理。

上面这些信息里面的配置可以放到Params.php方便调用

使用Yii::$app->params方法调用

到这基本上都能获取orderString 可以直接给客户端请求,无需再做处理。剩下就是自己做一些逻辑处理订单信息了;

注:生成一些私钥到官方下载https://docs.open.alipay.com/291/106097 下载密钥生成工具

我只是个菜鸟,有问题请在下方评论,共同学习进步

 

以上是关于yii2.0 app上集成支付宝支付的主要内容,如果未能解决你的问题,请参考以下文章

Java调用支付宝支付遇到的坑

java支付宝app支付-代码实现

支付宝app支付服务器签名代码(C#)

支付宝APP支付(基于Java实现支付宝APP支付)

UNI-APP开发支付宝小程序

支付宝支付接口-app支付沙箱环境