「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

哈嘍,大家好,我是傑瑞。好久沒有給大家更新教程啦,最近一個月都比較忙,所以就沒有時間去給大家更新教程,今天呢,事情差不多也忙完了,所以給大家帶來了一篇《小程序支付功能實戰》教程,我儘量的把過程寫簡單點,希望大家都能理解。


前期準備

先以企業身份註冊一個小程序賬號,註冊完成之後登錄小程序後臺,把小程序appid小程序secret碼複製好。在這之後登錄微信支付商平臺(需註冊),準備好微信支付商號。

做一個總結:

  • 小程序appid
  • 小程序secret碼
  • 微信支付商號

準備服務器:可以到各大平臺購買服務器,然後再去準備一個已經備過案的域名,並且該域名必須安裝ssl證書,具體安裝步驟在購買服務器的時候,可以詢問服務器提供商,一般都會有相應的文檔提供參考。

最後再做一個總結:

  • 小程序appid
  • 小程序secret碼
  • 微信支付商號
  • 購買服務器
  • 域名備案,安裝ssl證書

開始敲代碼

要完成小程序支付,我們分別編寫前端和後端的代碼,傑瑞就先給大家講一下前端的代碼,前端支付代碼分為3個步驟:獲取當前用戶的openid、開始預支付、開始扣款

獲取openid

這一步驟是分為前端和後端兩部分,前端調用小程序的wx.login()接口就能獲得當前用戶的登錄憑證(code),我們得到這個code之後,可以用這個code在後端服務器換取用戶用戶的唯一標識(openid)、會話密鑰(session_key)。

以下是小程序代碼(獲取openid):

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

調用wx.login()接口,該接口會返回用戶code,可在wx.login調用成功回調函數中獲取code,然後將appid、secret、code、grant_type(默認authorization_code)作為參數傳給後端接口後端收到這些參數之後再進行下一步操作,這部分後端程序也是我們要寫的。

以下是後端代碼(獲取openid):

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

後的那接收到以上四個參數之後,將請求接口地址和請求參數拼接到一起,注意:請求接口地址是微信提供獲取openid的接口地址可在小程序開發文檔中看到,這裡不便透露就不說了。

總的來說,獲取openid的步驟是這樣的:調用小程序接口wx.login()獲取code,將code發送給後端,後端獲取換取openid後將openid返回給小程序。

開始預支付步驟

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

預支付也分為前端和後端,前端將獲得的openid和appid、商戶號、支付金額、設備ip等參數發送給後端,後端接收到參數後將會想微信服務器發起預支付,如果參數無誤的話,微信將返回prepay_id(很重要)。

後端代碼(獲取prepay_id):

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

以下是回調地址的代碼:

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

這裡有一個需要注意的地方,微信支付過後,微信服務器將會向回調地址發送支付結果,如果回調地址沒有任何回應的話,微信服務器將視本次結果發送失敗,過一會將會重新發送支付結果,當然,它不會無限發送結果,在多次發送無果之後,微信服務器將放棄本次結果推送。(具體信息可查看

微信支付開發文檔)。

所以,當我們在回調地址中正常接收到回調參數後,應該向微信服務器返回“SUCCESS”字符串,告知對方“我們已收到消息”。

調用小程序支付接口

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!

獲取prepay_id後,我們就可以使用prepay_id進行在線支付了,這裡將使用到wx.requestPayment()接口,該接口需要用到5個參數,一個是當前支付時間(timeStamp)、隨機字符串(nonceStr)、package(當中包含prepay_id)、然後是支付簽名,這個簽名在後端服務器中生成(

二次簽名)。

支付成功

代碼寫到這裡,我們的支付功能就完成啦,關注我們可獲取更多驚喜哦!

以下是部分後端支付代碼:

「簡單教程」小程序支付功能開發實戰:附送前後端源碼!


分享到:


相關文章: