# 银行服务商指引
更新记录
版本 | 简要说明 | 修改日期 |
---|---|---|
1.0 | 创建新页面《银行服务商模式指引》 | 2019/07/05 |
1.1 | 删除人脸凭证交互流程的链接 | 2021/12/10 |
# 基本说明
目前支持 Android 和 Windows.
银行服务商模式开发刷脸支付时序流程和人脸凭证交互流程基本一致, 支付时需要调用银行服务商模式付款码支付接口完成支付。
# 银行服务商模式支付时序图
sequenceDiagram
participant A as 商户APP
participant B as 微信人脸sdk
participant C as 银行服务商server
participant D as 微信支付后台API
A ->> B: 1. initWxpayface
B -->> A: doInitWxpayface(返回初始化结果)
A ->> B: 2. getWxpayfaceRawdata
B -->> A: doGetWxpayfaceRawdata(返回rawdata)
A ->> C:3.获取SDK调用凭证
C->>D:3.get_wxpayface_authinfo(rawdata, sign)
D-->>C:返回authinfo
C -->> A:返回authinfo
A ->> B: 4. 进行人脸识别 getWxpayfaceCode(face_code_type=1)
A ->> B: 启动人脸识别activity
activate B
B ->> B: 进行人脸识别
B ->> B: 完成人脸识别
B -->> A: 回调返回人脸识别结果(face_code, openid)
B -->> A: doWxPayfaceCodeCallback(返回人脸识别结果)
note over A,D: 调用银行服务商模式付款码支付接口(auth_code=face_code)
A ->> B: 5. 更新支付结果(2.13及以上版本不支持该接口)updateWxpayfacePayResult(callback)
B->>B:用户确认支付结果
A ->> B: 关闭人脸应用界面
deactivate B
B -->> A: doUpdatePayResultCallBack(界面关闭,触发回调)
A ->> A: 程序退出(...)
A ->> B: 6. 释放资源 releaseWxpayface
# 商户号信息及签名
接口文档中的 mch_id
和 sub_mch_id
分别对应 银行服务商商户号 和 银行服务商子商户号, 不是渠道商商户号。
所以 get_wxpayface_authinfo
接口所需要的 sign
签名,也需要使用银行服务商商户号的秘钥生成。
# 最佳实践
# 银行服务商直接调用刷脸支付流程
- 为子商户申请开通刷脸支付权限
- 调用前端接口
initWxpayface
- 调用前端接口
getWxpayfaceRawdata
- 调用后端接口
get_wxpayface_authinfo
, 获取接口调用凭证authinfo
- 调用前端接口
getWxpayfaceCode
, 注意face_code_type
必须传1
, 表明返回的face_code使用付款码支付接口 - 拿到
face_code
后,调用原付款码支付后端接口完成支付 - 调用前端接口
updateWxpayfacePayResult
, 注意 如果调getWxpayfaceCode
接口时,ignore_update_pay_result
传了1
,则不需要调用updateWxpayfacePayResult
。
# 渠道商调用微信刷脸支付流程
建议流程
- 为子商户申请开通刷脸支付权限
- 要求银行服务商封装
get_wxpayface_authinfo
接口,提供给自己调用 - 调用前端接口
initWxpayface
- 调用前端接口
getWxpayfaceRawdata
- 调用后端从业机构接口, 获取
authinfo
- 调用前端接口
getWxpayfaceCode
, 注意face_code_type
必须传1
, 表明返回的face_code使用付款码支付接口 - 拿到
face_code
后,调用银行服务商封装好的付款码支付接口完成支付 - 调用前端接口
updateWxpayfacePayResult
, 注意 如果调getWxpayfaceCode
接口时,ignore_update_pay_result
传了1
,则不需要调用updateWxpayfacePayResult
。