微信小程式支付整理
1, 要讓小程式使用微信支付功能,必須讓小程式和商戶進行繫結,否則會報以下錯誤:
{"return_code":"FAIL","return_msg":"appid和mch_id不匹配"}
商戶就是收錢的那個機構,繫結流程參考: https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml ,
繫結成功後,在小程式的後臺管理頁面,功能--微信支付--商戶號管理頁面,可以看到繫結的資訊,如下:
2, 微信支付的流程如下:
文件地址: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3
這裡需要注意的兩個重要呼叫:
2.1 調支付統一下單介面,返回prepay_id,預支付ID,也就是告訴微信,我準備要向你發起支付請求了,然後它返回一個ID,在真正支付的時候帶上,用來作為標識進行校驗。具體的文件可以參考: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1,
介面地址:https://api.mch.weixin.qq.com/pay/unifiedorder
為了獲取預支付ID,這裡對傳參做了一次md5簽名,具體簽名規則參考: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
2.2 獲取到下單介面返回來的支付引數後,還需要做一次簽名,作為paySign欄位返回給前端。
{
"timeStamp":"1563482072",
"nonceStr":"ev0EWN78lTYyouHs",
"package":"prepay_id=wx1417351533323772227992dd0168651477",
"signType":"MD5",
"paySign":"EA7A3BB201E7C42A0AADED1300DFAE0A"
}
前端呼叫微信介面 wx.requestPayment 發起支付請求,然後彈框,讓使用者完成支付。
介面文件:
2.3 在完成支付後,微信會回撥一個url,這個url就是在呼叫支付統一下單介面時,所傳的 notify_url 欄位引數,這個通知url必須為外網可直接訪問的url,同時不能攜帶任何引數。同時要注意http和https的