手機APP支付總結:php
一. 支付寶手機APP支付:html
支付寶手機APP文檔: https://doc.open.alipay.com/docs/doc.htm?treeId=204&articleId=105051&docType=1
express
首先先了解支付寶官方提供的官方文檔, 說明很詳細,根據流程獲取APPID,私鑰,祕鑰, 而後下載支付寶官方提供的手機APP支付的demo或sdk, 文檔和demo都很詳細, 若是在測試時遇到問題, 能夠找在線的人工服務進行溝通解決方案.json
二. 客戶端調用接口
api
客戶端在服務端調用接口時,只須要給客戶端提供支付寶的OrderString便可, 字符串是以&符號拼接的, 客戶端接收後便可調起支付寶, 可是要保證的是參數值要保證正確的狀況下客戶端才能夠調起支付寶, 支付寶有提供OrderString的示例. PHP服務端SDK生成APP支付訂單信息示例:數組
$aop = new AopClient; $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; $aop->appId = "app_id"; $aop->rsaPrivateKey = '請填寫開發者私鑰去頭去尾去回車,一行字符串' ; $aop->format = "json"; $aop->charset = "UTF-8"; $aop->signType = "RSA2"; $aop->alipayrsaPublicKey = '請填寫支付寶公鑰,一行字符串'; //實例化具體API對應的request類,類名稱和接口名稱對應,當前調用接口名稱:alipay.trade.app.pay $request = new AlipayTradeAppPayRequest(); //SDK已經封裝掉了公共參數,這裏只須要傳入業務參數 $bizcontent = "{\"body\":\"我是測試數據\"," . "\"subject\": \"App支付測試\"," . "\"out_trade_no\": \"20170125test01\"," . "\"timeout_express\": \"30m\"," . "\"total_amount\": \"0.01\"," . "\"product_code\":\"QUICK_MSECURITY_PAY\"" . "}"; $request->setNotifyUrl("商戶外網能夠訪問的異步地址"); $request->setBizContent($bizcontent); //這裏和普通的接口調用不一樣,使用的是sdkExecute $response = $aop->sdkExecute($request); //htmlspecialchars是爲了輸出到頁面時防止被瀏覽器將關鍵參數html轉義,實際打印到日誌以及http傳輸不會有這個問題 echo htmlspecialchars($response);//就是orderString 能夠直接給客戶端請求,無需再作處理。
須要注意的是當客戶端接收到的這個orderString是以&格式拼接的字符串的話, 客戶端是不能調起支付寶的, 須要服務端進行處理以數組的格式讓客戶端進行拼接字符串, 或者讓客戶端處理, 這個須要客戶端和服務端進行溝通.瀏覽器
三. 支付完成回調處理app
客戶端在調用支付寶支付完成後, 根據客戶端提供的同步或者異步回調的方法中進行處理更新訂單的狀態信息,若是你有其餘的操做, 也能夠在支付完成後操做便可.
異步
以上便是支付寶手機App支付我的遇到的問題及處理方法, 僅供參考. ide