# 銀行服務(wù)商指引
更新記錄
版本 | 簡要說明 | 修改日期 |
---|---|---|
1.0 | 創(chuàng)建新頁面《銀行服務(wù)商模式指引》 | 2019/07/05 |
1.1 | 刪除人臉憑證交互流程的鏈接 | 2021/12/10 |
# 基本說明
目前支持 Android 和 Windows.
銀行服務(wù)商模式開發(fā)刷臉支付時序流程和人臉憑證交互流程基本一致, 支付時需要調(diào)用銀行服務(wù)商模式付款碼支付接口完成支付。
# 銀行服務(wù)商模式支付時序圖
sequenceDiagram
participant A as 商戶APP
participant B as 微信人臉sdk
participant C as 銀行服務(wù)商server
participant D as 微信支付后臺API
A ->> B: 1. initWxpayface
B -->> A: doInitWxpayface(返回初始化結(jié)果)
A ->> B: 2. getWxpayfaceRawdata
B -->> A: doGetWxpayfaceRawdata(返回rawdata)
A ->> C:3.獲取SDK調(diào)用憑證
C->>D:3.get_wxpayface_authinfo(rawdata, sign)
D-->>C:返回authinfo
C -->> A:返回authinfo
A ->> B: 4. 進(jìn)行人臉識別 getWxpayfaceCode(face_code_type=1)
A ->> B: 啟動人臉識別activity
activate B
B ->> B: 進(jìn)行人臉識別
B ->> B: 完成人臉識別
B -->> A: 回調(diào)返回人臉識別結(jié)果(face_code, openid)
B -->> A: doWxPayfaceCodeCallback(返回人臉識別結(jié)果)
note over A,D: 調(diào)用銀行服務(wù)商模式付款碼支付接口(auth_code=face_code)
A ->> B: 5. 更新支付結(jié)果(2.13及以上版本不支持該接口)updateWxpayfacePayResult(callback)
B->>B:用戶確認(rèn)支付結(jié)果
A ->> B: 關(guān)閉人臉應(yīng)用界面
deactivate B
B -->> A: doUpdatePayResultCallBack(界面關(guān)閉,觸發(fā)回調(diào))
A ->> A: 程序退出(...)
A ->> B: 6. 釋放資源 releaseWxpayface
# 商戶號信息及簽名
接口文檔中的 mch_id
和 sub_mch_id
分別對應(yīng) 銀行服務(wù)商商戶號 和 銀行服務(wù)商子商戶號, 不是渠道商商戶號。
所以 get_wxpayface_authinfo
接口所需要的 sign
簽名,也需要使用銀行服務(wù)商商戶號的秘鑰生成。
# 最佳實踐
# 銀行服務(wù)商直接調(diào)用刷臉支付流程
- 為子商戶申請開通刷臉支付權(quán)限
- 調(diào)用前端接口
initWxpayface
- 調(diào)用前端接口
getWxpayfaceRawdata
- 調(diào)用后端接口
get_wxpayface_authinfo
, 獲取接口調(diào)用憑證authinfo
- 調(diào)用前端接口
getWxpayfaceCode
, 注意face_code_type
必須傳1
, 表明返回的face_code使用付款碼支付接口 - 拿到
face_code
后,調(diào)用原付款碼支付后端接口完成支付 - 調(diào)用前端接口
updateWxpayfacePayResult
, 注意 如果調(diào)getWxpayfaceCode
接口時,ignore_update_pay_result
傳了1
,則不需要調(diào)用updateWxpayfacePayResult
。
# 渠道商調(diào)用微信刷臉支付流程
建議流程
- 為子商戶申請開通刷臉支付權(quán)限
- 要求銀行服務(wù)商封裝
get_wxpayface_authinfo
接口,提供給自己調(diào)用 - 調(diào)用前端接口
initWxpayface
- 調(diào)用前端接口
getWxpayfaceRawdata
- 調(diào)用后端從業(yè)機(jī)構(gòu)接口, 獲取
authinfo
- 調(diào)用前端接口
getWxpayfaceCode
, 注意face_code_type
必須傳1
, 表明返回的face_code使用付款碼支付接口 - 拿到
face_code
后,調(diào)用銀行服務(wù)商封裝好的付款碼支付接口完成支付 - 調(diào)用前端接口
updateWxpayfacePayResult
, 注意 如果調(diào)getWxpayfaceCode
接口時,ignore_update_pay_result
傳了1
,則不需要調(diào)用updateWxpayfacePayResult
。