1. 程式人生 > >微信小程式支付整理

微信小程式支付整理

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 發起支付請求,然後彈框,讓使用者完成支付。

介面文件: 

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html

2.3 在完成支付後,微信會回撥一個url,這個url就是在呼叫支付統一下單介面時,所傳的 notify_url 欄位引數,這個通知url必須為外網可直接訪問的url,同時不能攜帶任何引數。同時要注意http和https的