1. 程式人生 > >PHP 支付寶APP支付 (TP5)

PHP 支付寶APP支付 (TP5)

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.回撥地址的認證什麼跟我上一篇支付寶網頁支付一樣