微信小程序的支付流程
一、前言
微信小程序為電商類小程序,提供了非常完善、優秀、安全的支付功能
在小程序內可調用微信的API
完成支付功能,方便、快捷
場景如下圖所示:
- 用戶通過分享或掃描二維碼進入商戶小程序,用戶選擇購買,完成選購流程
- 調起微信支付控件,用戶開始輸入支付密碼
- 密碼驗證通過,支付成功。商戶後台得到支付成功的通知
- 返回商戶小程序,顯示購買成功
- 微信支付公眾號下發支付憑證
二、流程
以電商小程序為例
支付流程圖如下所示:
具體的做法:
- 打開某小程序,點擊直接下單
- wx.login獲取用戶臨時登錄憑證code,發送到後端服務器換取openId
- 在下單時,小程序需要將購買的商品Id,商品數量,以及用戶的openId傳送到服務器
- 服務器在接收到商品Id、商品數量、openId後,生成服務期訂單數據,同時經過一定的簽名算法,向微信支付發送請求,獲取預付單信息(prepay_id),同時將獲取的數據再次進行相應規則的簽名,向小程序端響應必要的信息
- 小程序端在獲取對應的參數後,調用wx.requestPayment()發起微信支付,喚醒支付工作台,進行支付
- 接下來的一些列操作都是由用戶來操作的包括了微信支付密碼,指紋等驗證,確認支付之後執行鑒權調起支付
- 鑒權調起支付:在微信後台進行鑒權,微信後台直接返回給前端支付的結果,前端收到返回數據後對支付結果進行展示
- 推送支付結果:微信後台在給前端返回支付的結果後,也會向後台也返回一個支付結果,後台通過這個支付結果來更新訂單的狀態
其中後端響應數據必要的信息則是wx.requestPayment
方法所需要的參數,大致如下:
wx.requestPayment({ // 時間戳 timeStamp: '', // 隨機字符串 nonceStr: '', // 統一下單接口返回的 prepay_id 參數值 package: '', // 簽名類型 signType: '', // 簽名 paySign: '', // 調用成功回調 success () {}, // 失敗回調 fail () {}, // 接口調用結束回調 complete () {} })
參數表如下所示:
三、結束
小程序支付和以往的網頁、APP微信支付大同小異,可以說小程序的支付變得更加簡潔,不需要設置支付目錄、域名授權等操作
參考文獻
- //pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_0.shtml