微信小程式之支付

騰訊IMWeb團隊發表於2019-01-11

轉自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,到微信支付側查詢是否存在該訂單,並查詢訂單狀態,看看是否已經支付成功了,確認成功後然後再向伺服器提交成功資訊,讓服務更新訂單狀態為成功。

實戰課程

說了這麼多,其實還是要親自實踐下才好,這裡推薦一門課程(免費的),可以跟著操作。

相關文章