PHP 支付寶APP支付 (TP5)
阿新 • • 發佈:2018-11-28
PHP交流群:294088839
1.進行支付請求
require_once './payment/zfb/pagepay/service/AlipayTradeService.php'; require_once './payment/zfb/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php'; $payInfo=Db::name('pay_type')->where(['pay_id'=>1])->find(); $zfb=json_decode($payInfo['pay_json'],true); //商品訂單號 $out_trade_no=$order_data['order_number']; //訂單名稱,必填 $subject='購買訂單'; //付款金額 $total_amount=$zongMoney; //商品描述 $body = $out_trade_no . '-' . $user_id.'-'.$zongMoney; $timeout_express="1m"; $aop = new \AopClient; $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $aop->appId = $zfb['app_id']; $aop->rsaPrivateKey = $zfb['merchant_private_key']; $aop->format = "json"; $aop->charset = "UTF-8"; $aop->signType = "RSA2"; $aop->alipayrsaPublicKey = $zfb['alipay_public_key']; //例項化具體API對應的request類,類名稱和介面名稱對應,當前呼叫介面名稱:alipay.trade.app.pay $request = new \AlipayTradeAppPayRequest(); //SDK已經封裝掉了公共引數,這裡只需要傳入業務引數 $bizcontent = json_encode(array( 'body'=>$body, 'subject' => $subject,//支付的標題, 'out_trade_no' => $out_trade_no,//支付寶訂單號必須是唯一的,不能在支付寶再次使用,必須重新生成,哪怕是同一個訂單,不能重複。否則二次支付時候會失敗,訂單號可以在自己訂單那裡保持一致,但支付寶那裡必須要唯一,具體處理自己操作! 'timeout_express' => $timeout_express,//過期時間(分鐘) 'total_amount' => $total_amount,//金額最好能要保留小數點後兩位數 'product_code' => 'QUICK_MSECURITY_PAY' )); $request->setNotifyUrl(config('u_z_notify_url')); $request->setBizContent($bizcontent); //這裡和普通的介面呼叫不同,使用的是sdkExecute $response = $aop->sdkExecute($request); //htmlspecialchars是為了輸出到頁面時防止被瀏覽器將關鍵引數html轉義,實際列印到日誌以及http傳輸不會有這個問題 //correctStatus 這個函式時我自定義的 json 函式 根據你們實際情況來進行處理 $json=correctStatus($response); echo $json;//就是orderString 可以直接給客戶端請求,無需再做處理。
2.回撥地址的認證什麼跟我上一篇支付寶網頁支付一樣