在做任何開發(fā)工作前都要有清晰的思路,思路不清工作就沒有辦法開展,就會出現(xiàn)到處亂撞,到處踩坑的現(xiàn)象,進(jìn)度無法撐控,領(lǐng)導(dǎo)不滿意,客戶不滿意等一系列問題。
一、理清思路:搞清楚在哪開通微信支付?
微信支付要在微信商戶平臺開通。
微信商戶平臺的支付業(yè)務(wù)服務(wù)于微信的各個產(chǎn)品,如公眾號、小程序、網(wǎng)頁支付、掃碼支付等,所以還要把微信商戶平臺與具體業(yè)務(wù)服務(wù)關(guān)聯(lián)起來,比如要想開發(fā)小程序支付,就需要在微信商戶平臺上添加小程序應(yīng)用。
具體操作這里暫不多講。(如有需要日后補(bǔ)充,或單獨(dú)發(fā)文)
弄清楚了這些,我們就知道我的具體工作了:
- 申請開發(fā)通小程序, 在微信公眾號平臺開通。
- 申請開通微信商戶號,在微信商戶平臺開通。
- 關(guān)聯(lián)微信商戶號和小程序。在微信商戶平臺操作。
二、準(zhǔn)備工作
對于程序員開講,開發(fā)微信支付(以小程序?yàn)槔┬枰~號或密鑰?
| 字段 | 說明 | 獲取方法 |
|---|---|---|
| APP_ID | 小程序id | 登錄小程序查看、獲取。 |
| APP_SECRET | 小程序密鑰 | 登錄小程序查看、獲取。 |
| APIV3_KEY | 微信支付V3 密鑰 | 登錄微信商戶平臺(賬戶中心->API安全模塊)自行設(shè)置。 |
| 商戶支付證書 | 商戶支付證書 | 通過微信證書下載工具下載,相關(guān)說明參見微信文檔。接入前準(zhǔn)備-小程序支付 |
| 商戶支付證書序列號 | 商戶支付證書序列號 | 通過命令從證書中提取 openssl x509 -in apiclient_cert.pem -noout -serial
|
| 微信平臺支付證書 | 微信平臺支付證書 | 通過下載工具從微信平臺下載。wechatpay-php |
三、開發(fā)過程(代程流程)
- 前端小程序發(fā)起購買請求。
- 后端接收到請求后,根據(jù)自業(yè)務(wù)邏輯創(chuàng)建訂單。
- 根據(jù)“準(zhǔn)備工作中”的賬號和證書等內(nèi)容初始化一個網(wǎng)絡(luò)請求對象(通常為http client),
- 按照微信接口的要求組裝支付數(shù)據(jù),調(diào)用微信統(tǒng)一下單接口創(chuàng)建微信支付訂單,請求成功后得到預(yù)支付訂單號ID:prepay_id。
- 按照微信的要求組裝前端支付所需的數(shù)據(jù),其中會需要加密,返回給前端。
- 前端小程序根據(jù)后端返回的支付數(shù)據(jù),通過
wx.requestPayment調(diào)起支付。 - 用戶輸入支付密碼完成支付。
- 前端小程序在
wx.requestPayment.sccess中處理支付成功的邏輯。 - 后端接收到微信的支付結(jié)果通知后中處理支付成功的邏輯。
四、注意事項(xiàng)
- 支付回調(diào)url是在調(diào)用微信支付時動態(tài)設(shè)置的,不是在微信商戶平臺里配置。