本人負(fù)責(zé)公司的支付系統(tǒng),因此少不了和第三方支付的對接。踩過的坑也不計其數(shù),為了讓更少的人踩坑,故記下。
支付的第一部就是發(fā)起支付,文檔如下
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.vKbs5T&treeId=204&articleId=105465&docType=1
1. 最重要的就是sign參數(shù),我們稱為簽名。簽名的要使用私鑰(有關(guān)私鑰的獲取下面有介紹)計算,簽名的計算應(yīng)該放到服務(wù)端,不要放到客戶端,不然私鑰泄露,不安全。
2. 文檔上說body參數(shù)是非必傳的,但是實際開發(fā)中,我發(fā)現(xiàn)是必須要傳的,可以傳空字符串。
3. appid是創(chuàng)建的應(yīng)用id, 開頭8位是創(chuàng)建的日期, 比如20161107. pid或者說partnerId是2088開頭是數(shù)字。一個pid對應(yīng)多個appid.
4. 應(yīng)用上線不代表就有了app支付權(quán)限,權(quán)限需要單獨到這里開通https://b.alipay.com/signing/productDetail.htm?productId=I1011000290000001002, 若你先在應(yīng)用里添加了app支付功能,記得開通app支付權(quán)限后,刪除app支付功能,重新添加。
密鑰說明
1. 私鑰的創(chuàng)建見https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.aldfUk&treeId=58&articleId=103242&docType=1。建議使用官方提供的工具直接生成。
注意如果是java語言,使用的是PKCS8密鑰。
2. 發(fā)起支付簽名使用的是生成的私鑰,同時需要把生成的公鑰填到支付寶平臺。
