說說微信小程式支付
最近有機會嘗試了小程式的支付開發,總結下期間碰到的問題。
小程式支付和以往的網頁、APP微信支付大同小異,應該說小程式的支付更簡便了些,不需要設定支付目錄、不需要授權域名等操作。其實主要的流程就兩步:
開發者服務端向微信發起統一下單請求,小程式調起微信支付。
接下來說說開發過程中遇到的一些問題。
1:首先確認小程式已經申請開通支付功能且開通或繫結商戶號。
如果之前已經實現過微信支付,可以直接繫結原有的商戶號即可,開發前的準備工作還是要做好的。
2:確認使用者的openid和appid是對應的。
如果只有一個微信系產品的話,這個問題應該不會存在,但是比如存在公眾號、小程式等多個微信系產品的情況下,就需要特別注意對應關係了,在請求統一下單介面時一定要確保提交引數中的openid是其對應appid下的使用者,因為存在多個appid的時候會容易把openid搞錯,所以一定要通過appid這一條件去資料庫獲取使用者openid,不匹配的appid和openid在統一下單會返回一個APPID_MCHID_NOT_MATCH 錯誤。
3:微信支付回撥需要再次簽名驗證。
在統一下單的介面中會傳入一個notify_url的引數供微信對支付結果的一個回撥通知,我們以這個支付結果回撥通知來判斷當前支付是否成功從而來更新業務狀態,而且我們還需要對notify_url接收的引數再次做簽名校驗,防止被惡意請求或偽造支付結果通知。
4:小程式支付成功頁面跳轉問題。
小程式通過 wx.requestPayment 來調起微信支付,在success方法裡可以實現支付成功後頁面自定義跳轉。注意跳轉方式請選用合適的導航,小程式裡不同的導航所支援的跳轉方式不一樣。例如:
wx.requestPayment({
success:function(){
wx.navigateTo({
url: '/pages/index/index'
})
}
})
以上是此次小程式支付開發過程中遇到的一些問題,歡迎交流。