支付寶支付開發要點記錄

完整的走完一個支付業務流程後,發現還是有不少需要注意的地方,爲了避免時間長了忘記一些細節,這裏先對一些流程和要點進行記錄。


整體業務流程

支付寶支付分很多種支付方式,例如wap、web、app、當面付(掃碼和條碼)等,細節上有區別,但是大的流程其實都差不多,尤其是各個支付方式的前期準備工作都差不多,整理後大致如下:

  1. 創建支付寶賬號並登陸;
  2. 創建應用;
  3. 添加相應支付功能並簽約,需要營業執照;
  4. 根據相應支付功能api說明進行開發,而大致的開發流程又基本如下:

1.封裝請求支付信息content
2.封裝待簽名請求信息
3.待簽名參數排序
4.根據文檔說明下載私鑰RSA簽名驗籤工具生成私鑰並與公鑰驗證
5.使用私鑰對上邊排序過的參數rsa2簽名加密
6.發起支付請求
7.選擇性同步結果(wap前臺表單提交就沒有)
8.異步結果通知


要點

知之不若行之,支付api看起來比較簡單,但是真正的從頭到尾來一遍,直到最終成功支付,還是會遇到各種各種的問題,以下是目前覺得有必要注意並記錄的一些要點:

  1. 不同的支付方式,一定注意method參數不要填錯,例如wap就是alipay.trade.wap.pay,app就是alipay.trade.app.pay。更多具體的參數值,都可以參考開放平臺的文檔說明:
    https://docs.open.alipay.com/api

2.wap支付有兩種方式,一種是頁面跳轉,一種是系統調用,可以根據需要選擇。
更多內容可以參考開放平臺文檔:
https://docs.open.alipay.com/203/105285/
需要注意的是,頁面跳轉的方式需要請求後跳轉到到支付寶支付的H5界面,開放平臺api文檔說需要前臺form表單方式提交支付請求到支付寶。前臺提交就需要後臺封裝好數據簽名加密後返回前臺然後前臺使用表單方式提交到支付寶。
而實際使用時發現其實直接後臺提交也是可以的,使用httpclient的form表單方式提交到支付寶一樣可以正常跳轉支付。

3.待簽名參數排序時,一定要是根據參數首字母排序,並且過濾掉空值的參數,否則簽名不通過。
而簽名加密實際是先簽名後還要進行base64編碼,詳細步驟可以參考開放平臺的文檔:
https://docs.open.alipay.com/291/106118
我自己實現的過程中更,簽名這一塊實際是抄的別人代碼,簽名加解密這一部分還是我急需補充的技術點。

4.支付寶支付有新舊接口區分,接口地址、數據格式、參數多少等都有一定區別,也需要注意。不過,現在接入支付寶支付應該都會是使用新接口了。

5.支付寶有提供沙箱環境,但是實際測試發現似乎有些問題,同樣的代碼,只是把參數值以及接口等改爲沙箱環境所需要的,結果卻不能成功支付。

6.開放平臺api中的參數說明與實際接口似乎有些不配套,也可能並沒有嚴格校驗。有些說了必選的參數,實際是可以不選,例如下邊這個,我在wap支付的時候就沒有設置,但是依然成功的支付。
quiturl


參考代碼

塗宗勳的個人聚合支付demo版權所有:塗有薄技

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章