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 下载密钥生成工具
我只是个菜鸟,有问题请在下方评论,共同学习进步