微信小程式支付原始碼 Demo 後臺服務端程式碼
阿新 • • 發佈:2019-01-25
微信小程式支付繞坑指南
步驟
A:小程式向服務端傳送商品詳情、金額、openid
B:服務端向微信統一下單
C:伺服器收到返回資訊二次簽名發回給小程式
D:小程式發起支付
E:服務端收到回撥
首先準備以一下資訊
小程式傳送小程式向服務端傳送商品詳情、金額、openid
服務端接收小程式發來的資訊
判斷資訊是否為空,不為空將要參與簽名的資訊組合成鍵值對,準備簽名
簽名演算法(首先進行排序,連線商戶KEY,進行MD5計算,結果轉成大寫)
將計算好的MD5值也加入到之前的鍵值對中,並且將整個鍵值對轉成XML格式傳送給預下單地址https://api.mch.weixin.qq.com/pay/unifiedorder
等會支付伺服器返回預支付資訊,判斷返回結果
將返回的結果,和二次簽名的值一起返回給小程式
需要注意的是二次簽名的隨機字串是微信伺服器發來的不是自己隨機的,另外appid和Key也要參與簽名計算千萬別忘記了。
'appId='+appId+'&nonceStr='+nonceStr+'&package='+pkg+'&signType=MD5&timeStamp='+timeStamp+"&key=d27551c7803cf16*e536b192d5d03b"這才是完整的。
小程式收到結果發起支付
支付截圖
遇到的問題:
預支付請求籤名錯誤
解決辦法:首先確定appid商戶號KEY是否正確,參與簽名的字串是否按照要求排序,是否是UTF8格式,如果實在不行可以重置一次KEY試一試。
返回錯誤說total_fee引數為空
解決辦法:如果total_fee引數不為空,可能是package格式不對應該為"prepay_id="+prepay_id