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上集成支付宝支付的主要内容,如果未能解决你的问题,请参考以下文章