首先說明一下,微信小程序支付的主要邏輯集中在后端,前端只需攜帶支付所需的數據請求后端接口然后根據返回結果做相應成功失敗處理即可。我在后端使用的是php,當然在這篇博客里我不打算貼一堆代碼來說明支付的具體實現,而主要會側重于整個支付的流程和一些細節方面的東西。所以使用其他后端語言的朋友有需要也是可以看一下的。很多時候開發的需求和相應問題的解決真的要跳出語言語法層面,去從系統和流程的角度考慮。好的,也不說什么廢話了。進入正題。
一. 支付
支付主要分為幾個步驟:
前端攜帶支付需要的數據(商品id,購買數量等)發起支付請求從這幾個步驟可以看出,后端主要的作用就是將支付需要的數據傳給微信服務器,再根據微信服務器的響應確定支付是否完成。
這個流程還是蠻容易理解的。形象的說,前端就是個顧客,后端就是店家,微信服務器的統一下單接口就像收銀員。顧客跟店家說,我是誰誰誰,現在我要付多少多少錢給你買什么什么。店家就跟收銀員說,那個誰誰誰要付多少錢,你準備收錢吧。收銀員收到錢后,就去告訴店家,我已經收到錢了,你給他東西吧。
下面就詳細的說明一下各個步驟的具體實現。
1. 前端請求支付
前端請求支付,就是簡單的攜帶支付需要的數據,例如用戶標識,支付金額,支付訂單 ID 等等跟 **你的業務邏輯有關** 或者跟 **下一步請求微信服務器支付統一下單接口需要的數據有關** 的相關數據,使用微信小程序的 wx.request( ) 去請求后端的支付接口。
2. 后端請求微信服務器
后端接收到前端發送的支付請求后,可以進行一下相關驗證,例如判斷一下用戶有沒有問題,支付金額對不對等等。
在驗證沒什么問題,可以向微信服務器申請支付之后,后端需要使用 微信規定的數據格式 去請求微信的支付統一下單接口。
微信規定的請求數據:
這需要較多代碼實現。因為需要的數據個數較多,而且還需要加密并以 XML 格式發送。
新聞熱點
疑難解答