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 下載密鑰生成工具
我只是個菜鳥,有問題請在下方評論,共同學習進步