轉自IMWeb社群,作者:結一,原文連結
微信小程式為支付提供了一個 API,那就是 wx.requestPayment。打眼一看還是比較簡單的,就是傳入幾個引數唄,但是實際要搞定這幾個引數還是需要一些流程的。
引數說明
wx.requestPayment
的引數如下:
首先 nonceStr 和 package 這兩個引數是由另外一個統一下單 API 返回的。而該介面需要提供小程式appid、商戶號,使用者openid等。
然後 paySign 簽名涉及到簽名演算法,需要引數:appid、商戶號,nonceStr、package、商戶祕鑰和一個時間戳。
支付流程總結
說了這麼多,整個支付流程梳理起來就是如下:
1、準備好 appid、商戶號及商戶祕鑰。
2、拿到 openid。
3、呼叫支付統一下單介面,拿到 nonceStr 和 package 這兩個資料。
4、生成 paySign。
5、呼叫 wx.requestPayment
發起支付請求。
6、對成功或失敗進行處理。
wx-js-utils
如果 2-4 都要自己動手的話,還是比較費勁的。這不微信又給我們提供了一些方便。這就是 wx-js-utils。它主要提供瞭如下四個基本能力:
- 小程式使用者(提供了獲取 openid 和 accessToken 的方法)
- 小程式模板訊息
- 小程式碼
- 微信支付(提供了統一下單、查詢訂單、撤銷訂單等一系列 API 介面)
具體使用請參考文件即可。
成功失敗處理
- 無論成功還是失敗,更新資料提示成功或失敗
- 如果成功則呼叫查詢訂單 API,到微信支付側查詢是否存在該訂單,並查詢訂單狀態,看看是否已經支付成功了,確認成功後然後再向伺服器提交成功資訊,讓服務更新訂單狀態為成功。
實戰課程
說了這麼多,其實還是要親自實踐下才好,這裡推薦一門課程(免費的),可以跟著操作。