適合沒有微信支付接入經(jīng)驗的開發(fā)者。
1. 申請微信支付
小程序認證以后,可以在小程序后臺,微信支付菜單欄,申請微信支付。
填寫企業(yè)信息和對公賬戶,微信支付會打一筆隨機金額到對公賬戶,輸入金額完成驗證后,在線簽署協(xié)議,這樣整個微信支付的申請流程完成了。
微信支付申請完,會發(fā)送微信支付商戶號,商戶平臺用戶名密碼等信息到注冊者郵箱。
2. 準備工作
2.1 配置小程序密鑰
在小程序后臺設置頁,點擊生成,管理員驗證二維碼后,會隨機生成 AppSecret。請妥善保管好 Appsecret,不要明文存儲于服務器,AppSecret 用于和微信服務器交互。比如獲取用戶的 openid 接口就需要用到。
2.2 設置密鑰和下載證書
用申請微信支付獲得的用戶名和密碼,登錄商戶平臺 (pay.weixin.qq.com),在賬戶中心,API 安全中下載證書和設置密鑰。
密鑰是 32 位,設置以后需要妥善保管,因為無法查看密鑰,所有微信支付相關(guān)的接口都會使用這個密鑰加密。
2.3 配置 Https 服務器
小程序的前端是使用微信提供的框架開發(fā),但是后臺依然是開發(fā)者自己的服務器。小程序發(fā)起的是 https 請求,意味著小程序開發(fā)者必須配置 https 服務器。
配置 https 服務器之前,先要獲取證書,證書可以向相關(guān)機構(gòu)購買,騰訊云目前可以向用戶提供免費的證書。
證書安裝指引在這里查看:
https://www.qcloud.com/doc/pr...
3. 微信支付流程
微信支付有多種支付方式,包括刷卡支付,公眾號支付,掃碼支付,APP 支付,在這里微信支付的所有接口:https://pay.weixin.qq.com/wik...
小程序是在微信里調(diào)起支付的,其實是公眾號支付。關(guān)于公眾號支付的詳細文檔可在這里查看:https://pay.weixin.qq.com/wik...
所有公眾號支付相關(guān)的鏈接都可以在此鏈接找到,開發(fā)者首先需要大概了解這些接口。
小程序公眾號支付的主要流程如下(本圖只考慮了正常流程,異常流程參考公眾號支付文檔):
3.1 關(guān)于 openid
上述流程中請求 openid,用的是小程序最新 api 中的接口,開發(fā)者可以查看小程序的登錄接口。
開發(fā)者從第三方服務器獲得的 openid,在統(tǒng)一下單的接口里面需要使用到。
3.2 關(guān)于小程序調(diào)起微信支付
上述流程中的小程序調(diào)起微信支付,用的是小程序微信支付接口 wx.requestPayment,該接口的詳細描述可以查看小程序的微信支付 API。
這個接口中的 package 和 timeStamp 參數(shù)是從開發(fā)者的第三方服務器返回的,package 是第三方服務器從統(tǒng)一下單接口回復中獲得。
接口中其他的參數(shù),appId,noceStr,signType 以及 paySign 則由小程序這邊存儲或者計算而得。
其中 paySign 是簽名,簽名算法文檔在這里:
https://pay.weixin.qq.com/wik...
整個公眾號支付的主要流程基本都是在第三方服務器上實現(xiàn),開發(fā)者需要熟讀公眾號支付文檔,了解消息交互流程以及每個接口。
這里并沒有描述正常微信支付必不可少的一些功能:異常處理,查詢訂單,發(fā)起退款,下載對賬單等等。
微信小程序支付流程;
文字展示
1、小程序內(nèi)調(diào)用登錄接口,獲取到用戶的openid,api參見公共api【小程序登錄API】
2、商戶server調(diào)用支付統(tǒng)一下單,api參見公共api【統(tǒng)一下單API】
3、商戶server調(diào)用再次簽名,api參見公共api【再次簽名】
4、商戶server接收支付通知,api參見公共api【支付結(jié)果通知API】
5、商戶server查詢支付結(jié)果,api參見公共api【查詢訂單API】
小程序調(diào)起支付API的形成的參數(shù):
paySign = MD5(appId=wxd678efh567hg6787&nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&package=prepay_id=wx2017033010242291fcfe0db70013231072&signType=MD5&timeStamp=1490840662&key=qazwsxedcrfvtgbyhnujmikolp111111) = 22D9B4E54AB1950F51E0649E8810ACD6
代碼形式展示
wx.requestPayment(
{
‘timeStamp’: ‘’,
‘nonceStr’: ‘’,
‘package’: ‘’,
‘signType’: ‘MD5’,
‘paySign’: ‘’,
‘success’:function(res){},
‘fail’:function(res){},
‘complete’:function(res){}
})
個人思考:
1,首先聊一聊開發(fā)模式[自己也是第一次看,進行總結(jié),接下來即將用到項目中去。
1.1普通模式
場景是適用于自己開發(fā)或者外包開發(fā),申請自己的appId,mch_id
1.2商戶服務模式
該模式包含普通服務商模式與銀行類服務商模式。
2, 業(yè)務說明
申請注冊小程序,開通支付流程,即可,一下幾點注意:
appid必須為最后拉起收銀臺的小程序appid;
mch_id為和appid成對綁定的支付商戶號,收款資金會進入該商戶號;
trade_type請?zhí)顚?/span>JSAPI;
openid為appid對應的用戶標識,即使用wx.login接口獲得的openid
3,業(yè)務流程
請參考以上圖片顯示展示與文字說明
4, 開發(fā)步驟
5, 小程序調(diào)用支付API
6, sub_appId的使用說明
sub_appid可為公眾號,APP或小程序的appid,服務商在服務商商戶平臺可手動為每個特約商戶綁定與渠道商主體或特約商戶主體一致的公眾號,APP或小程序的appid;針對小程序,還支持綁定服務商主體的小程序appid。目前最多配置5個. 手工配置路徑:”服務商商戶平臺-服務商功能-子商戶管理-開發(fā)配置-特約商戶APPID配置”。
文章內(nèi)容來源于網(wǎng)絡,侵刪