微信支付(JSAPI、小程序)開發流程記錄


微信支付能力分類

JSAPI支付
APP支付
Native支付
小程序支付

該記錄介紹

記錄了小程序支付的JSAPI下單小程序調起支付API的流程

前置准備

  • 已經認證的微信公眾號、小程序(建議先認證公眾號,之后使用公眾號資質申請小程序)
  • 已經認證的微信支付

小程序開發准備

  1. 獲取小程序的appidsecret

微信支付開發准備

1.商戶號獲取(mch_id)

image

2. 設置APIv3密鑰

在賬戶中心-API安全頁面來設置APIv3密鑰(密鑰請保管好,設置后無法查看,如果忘記了就只能修改了)
image

3.證書項說明

微信支付有兩個很重要的證書,分別是商戶證書平台證書,兩個證書的區別如下,引自微信官方支付官方文檔

  • “商戶證書”是指由商戶申請的,包含商戶的商戶號、公司名稱、公鑰信息的證書。
  • “平台證書”是指由微信支付負責申請的,包含微信支付平台標識、公鑰信息的證書。
  • 商戶在調用 API 時用自身的私鑰簽名,微信支付使用商戶證書中的公鑰來驗簽。微信支付在響應的報文中使用自身的私鑰簽名,商戶使用平台證書中的公鑰來驗簽。

簡單的來說,商戶證書是向微信支付發起請求或回復微信支付回調時使用的,平台證書是微信支付向商戶發起請求或回復商戶回調時使用的。

另外,微信支付向商戶進行請求回復與請求回調時除了密文外,還會附帶明文信息,所以如果對安全性要求不是極高的情況下,可以不使用平台證書,博主只實現了微信支付-JSAPI下單這一個接口,所以微信支付進行請求回復與請求回調的密文解碼部分,本篇文章不做說明,如果后續有對接則補充。

4. 申請API證書(商戶證書)

點擊賬戶中心-API安全-申請證書來申請API證書
image
根據提示下載證書工具
image
根據提示申請證書
image
之后將證書工具中生成的請求串粘貼到網頁中,即可完成API證書的生成(此時一定要保管好證書,證書只能下載一次,注意證書不要泄露給其他人)

5. 獲取平台證書與序列號

獲取方法有兩種,第一種方法為通過微信支付官方文檔提供的接口來獲取,第二種方法為通過微信支付官方提供的工具來獲取。
(不要覺得第二種手動的工具使用麻煩而使用第一種,后來我才知道平台證書5年才更新一次,T-T我在寫平台證書獲取代碼這里花了3個小時的時間才調試成功)

  • 第一種方法可微信支付官方文檔,該方法對於新手極其復雜,不建議新手采用該方法,故不作敘述,需要代碼及技術支持請聯系博主。
  • 第二種方法時使用官方提供的工具,詳情可訪問查看https://github.com/wechatpay-apiv3/CertificateDownloader

小程序支付程序執行流程

  1. 小程序獲取用戶code和要支付的金額(請根據實際項目需求來決定支付金額是由前端設置還是后端設置)
  2. 后端根據小程序的用戶code獲取用戶openid
  3. 調用JSAPI下單接口(該過程需要使用商戶證書對請求數據進行簽名)
  4. 小程序調起支付(該過程需要使用商戶證書對請求數據進行簽名,為了安全性簽名過程請務必在后端實現)
  5. 用戶支付
  6. 等待微信支付平台的支付結果回調

避免踩坑

經過測試發現,JSAPI下單、JSAPI調起支付API的調用過程中,所有的時間戳與簽名使用的nonceStr必須完全一樣,才可以調起支付成功,否則會提示簽名驗證失敗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM