小程式中微信支付的能力是隨著小程式的發布一併推出的,然而小程式文件裡關於微信支付介面只有一個 requestPayment 函數的描述。
這個 requestPayment 函數確實是小程式前端唯一需要呼叫的函數,但是微信支付的成功存取實際上遠遠不止這一個函數。對於沒有接過微信支付的開發者,會覺得一頭霧水,完全沒辦法下手。
本文闡述如何從零開始接取小程式支付,尤其適合沒有微信支付接取經驗的開發者。
小程式認證以後,可以在小程式後台,微信支付選單欄,申請微信支付。
填寫企業資訊和對公帳戶,微信支付會打一筆隨機金額到對公帳戶,輸入金額完成驗證後,在線簽署遷移,即完成了微信支付的申請流程。
微信付款申請完,會寄微信支付商家號,商家平台使用者名稱密碼等資訊到註冊者信箱。
2.1 設定小程式金鑰
在小程式後台設定頁,點選生成,管理員驗證二維碼後,會隨機產生AppSecret。請妥善保管好 Appsecret,不要明文儲存於伺服器,AppSecret 用於和微信伺服器互動。例如取得使用者的 openid 介面就需要用到。
2.2 設定金鑰和下載憑證
用申請微信支付所獲得的使用者名稱和密碼,登入商家平台(pay.weixin.qq.com),在帳戶中心,API 安全性中下載憑證和設定金鑰。
密鑰是 32 位,設定以後需要妥善保管,因為無法查看密鑰,所有微信支付相關的介面都會使用這個密鑰加密。
2.3 設定 Https 伺服器
小程式的前端是使用微信提供的框架開發,但是後台仍然是開發者自己的伺服器。小程式發起的是 https 請求,表示小程式開發者必須配置 https 伺服器。
設定 https 伺服器之前,先要取得證書,證書可以向相關機構購買,騰訊雲目前可以提供使用者免費的證書。
憑證安裝指引在這裡查看:
https://www.qcloud.com/doc/product/400/4143
微信支付有多種支付方式,包括刷卡支付,公眾號支付,掃碼支付,APP 支付,在這裡微信支付的所有接口:https://pay.weixin .qq.com/wiki/doc/api/index.html
小程式是在微信裡調起支付的,其實是公眾號支付。關於公眾號支付的詳細文件可在這裡查看:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
##所有公眾號支付相關的連結都可以在此連結找到,開發者首先需要大概了解這些介面。 小程式公眾號支付的主要流程如下(本圖只考慮了正常流程,例外流程參考公眾號支付文件):3.1 關於 openid
上述流程中請求 openid,用的是小程式最新 api 中的接口,開發者可以查看小程式的登入接口。
開發者從第三方伺服器取得的 openid,在統一下單的介面裡面需要使用到。
3.2 關於小程式調起微信支付
上述流程中的小程式調起微信支付,用的是小程式微信支付介面wx.requestPayment,該介面的詳細描述可以查看小程式的微信支付API。
這個介面中的 package 和 timeStamp 參數是從開發者的第三方伺服器回傳的,package 是第三方伺服器從統一下單一介面回復中取得。
介面中其他的參數,appId,noceStr,signType 以及 paySign 則由小程式這邊儲存或計算而得。
其中paySign 是簽名,簽名演算法文件在這裡:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter= 4_3&t=20161107
整個公眾號支付的主要流程基本上都是在第三方伺服器上實現,開發者需要熟讀公眾號支付文檔,了解訊息互動流程以及每個介面。
這裡並沒有描述正常微信支付必不可少的一些功能:異常處理,查詢訂單,發起退款,下載對帳單等等。
JSSDK 的微信支付介面是公眾號裡用 JS 調起公眾號支付的方法,具體可以參考公眾平台的文檔。
可以看到,小程式和JSSDK 的微信支付非常類似,這裡比較一下2 者的差異:
以上就是JeffChen(微信公眾號:行動開發技術) 關於小程式接取微信支付的分享,希望對你有幫助。
更多微信小程式如何從0開始進入支付相關文章請關注PHP中文網!