# 微信支付k12人脸接入常见问题Q&A
更新记录
版本 | 简要说明 | 修改日期 |
---|---|---|
1.1.1 | 新增:小程序相关、后台接口相关、签名相关、离线刷脸终端、其他相关(流程)FAQ | 2020/08/15 |
1.1.2 | 新增:小程序FAQ1.17;1.18;1.19后台接口FAQ2.2 优化:小程序FAQ1.13排查指引、优化整体FAQ对应分类 | 2021/01/08 |
1.1.2 | 新增:重采小程序相关说明及流程FAQ1.20;1.21 新增:小程序FAQ1.22;1.23 新增:指定银行卡签约FAQ2.3;2.4;2.5 新增:用户签约解约时间查询FAQ2.6 优化:签名相关FAQ | 2021/01/27 |
# 开发类
# 1.小程序
1.1 用户信息接口是终端接口还是后端接口?接口提供时间?
- 个采
· 紧急联系人手机号同步给服务商接口
· 签约第二步用户信息界面,是否允许编辑照片,需双方研发协调确定一个接口
· 用户在开平小程序签约完成后,回调小程序的接口
手机号由服务商收集,然后传给微信侧
提供补拍照片的能力 在官方组件回调商户小程序页面的接口
- 集采
· 会员数据什么时候同步给微信,如增删改接口?
小程序侧提供接口,拍照时上传数据;同时后台也会提供接口,如果平时有信息修改,可通过后台接口同步给微信侧
1.2 小程序调用凭证是否是一个用户一个凭证?小程序凭证的有效期是多久?一个用户采集多次,是否每次都需获取凭证。
在同一个机构id下,一个用户对应唯一id,能采集拍照多次
1.3 当用户被禁用刷脸支付时,微信侧能否提供通知接口。用户被禁用刷脸支付能力,服务商无法感知,若不主动通知,服务商需定时批量拉取。
需要接入用户签约解约回调通知
1.4 服务商创建小程序申请创建小程序的流程和注意事项?
可参考:小程序注册流程
- 注意:
①小程序内容发布失败,提示涉及采集用户生物特征(人脸照片或视频)及其他敏感信息,平台暂不支持?」服务商小程序调取官方采集人脸小程序,所以小程序是不能做这些内容的。
②小程序如果要做订餐业务需要怎么样的资质?
上线订餐需要有相关的餐饮许可证等证件。
1.5 服务商创建的小程序和商户号是同主体,存在多个APPid 该如何进行绑定?
服务商只能绑定一个appid,默认绑定申请生成商户号对应的appid。
如果需要替换为新申请的APPid,需要先解绑之前默认绑定的appid。
1.6 用户签约解约后的状态有没有回调通知
需按签约解约回调接入流程配置,建议直接配置正式环境
1.7 学校商户号收款需要调起服务商小程序appid 需要在服务商后台进行绑定后才能调起支付成功。
服务商为特约商户配置AppID(即sub_appid)操作指引
1.8 服务商申请进行小程序创建后,怎么去采集人脸信息,只需要在服务商的小程序做采集和免密签约入口然后把学生的相关信息传过去就行了吧?然后直接跳转微信的采集小程序和免密签约小程序。
服务商创建好小程序后,服务商侧,采集人脸是跳转到微信官方采集人脸小程序,签约是调起签约组件即可
1.9 一个用户能在不同的机构下分别有一个out_user_id吗?
可以,需要分别签约
1.10 关于双胞胎采集签约疑问
1、一个家长有2个小孩在同一个学校上学,需分别录2次人脸,同1个账户签约代扣2次需要2次?
2、一个家长有2个小孩在不同学校上学,开通人脸账户的话,也是分别别录2次人脸签约2次代扣?
3、如果签约两次,解约的时候,是一次全部解约吗?
是的,都需要分别录脸,签约2次代扣,解约是分别解约
1.11 学生是否自己可以直接录脸签约人脸代扣?有风险吗?
法律层面未成年人应该受到家长监管,需由家长开通签约代扣
1.12 采集人脸提示系统繁忙
确认服务商采集签约的流程
1.检查身份证信息是否按照正常的身份证提交
2.检查token等参数是否传错
3.检查其他参数是否正确
1.13 采集人脸提示网络异常
可按照下面步骤进行排查
- 确保out_user_id长度大于5位
- 检查传入的手机号是否存在非法字符/手机号是否合法
- 检查传入的证件号长度是否大于7位
1.14 out_user_id在什么时候在哪个位置自定义
添加签约的用户时候定义
1.15 采集人脸拍照无反应
苹果手机需注意小程序是否打开摄像头:
步骤如下:采集小程序--右上角三个点--设置--摄像头状态
安卓手机需注意是否相机授权微信
1.16 小程序签约采集无法调起刷脸组件
需要在app.json配置相关信息
1.17 out_user_id和userid有什么区别?
out_user_id是商户侧对用户的唯一标识,userid是微信侧对用户的唯一标识
1.18 跳转微信侧人脸小程序完成人脸授权,过程中,我怎样调用预签约接口,从而建立微信人脸user_id与out_user_id(会员ID)关系
通过预签约接口传入out_user_id,获取presign_token跳转签约小程序,用户签约完成之后,会返回对应out_user_id的userid,实现out_user_id和userid关联
1.19 确保双胞胎能够进行刷脸识别,其签约规则是怎样?
1、2.13版本及以下:双胞胎只能使用不同手机号、不同微信号进行签约;终端识别时需增加手机尾号校验流程
2、2.21版本及以上:双胞胎签约:
1.使用同一个手机号,同一微信号进行签约,识别时无需手机尾号校验
2.使用不同手机号,不同微信号进签约,识别时需增加手机尾号校验
我们建议:2.21及以上版本,双胞胎用户签约使用同一个手机号,同一微信号
1.20 关于采集小程序、签约小程序、重采小程序,这三个小程序有什么区别吗?
采集小程序:用户进行采集照片的小程序
签约小程序:用户进行签约代扣的小程序
重采小程序:用户进行更换底照的小程序
1.21 重采小程序,用户进行更换底照这个流程怎么实现?
首先,重采小程序是已签约用户在不解约的情况下进行更换底照;未签约用户无法跳转到重采小程序
重采更换底照流程:已签约用户需要先走采集拍照流程,然后再走确认信息流程,完成重采更换;需进行家长确认流程才能重采才能生效;如下图所示:
1.22 采集和签约流程,必须是按照先采集后签约这种方式吗?
采集签约,没有固定的先后顺序,按照想实现的方式来即可
1.23 同一个微信号,签约完一个用户之后,我想签约另外一个用户,提示登录态过期
同一个微信号签约多个用户需注意:
一个用户对应一个授权凭证(token),签约另外的用户时,需重新获取授权凭证;同时,同一个微信无法签约同名用户。
# 2.后台接口
2.1 后台接口调用返回错误提示
1.请求接口
2.请求参数
3.返回参数
4.请求时间
接口问题均按照上面的模板提供下信息,方便问题快速定位
2.2 当刷脸支付用户的账户因为欠款原因被冻结,此时请求<申请扣款接口>,接口同步返回结果状态码是200(成功)还是其他?如果是其他,返回值有哪些?
申请扣款接口返回的状态码200表示接口调用成功,但并不是代表订单扣款成功;订单扣款状态需根据返回的错误码和Message进行处理
2.3 指定银行卡签约,我应该使用哪个接口?
指定银行卡签约,只能使用预签约接口,用预签约接口返回的presign_token跳转小程序
2.4 预签约接口和获取授权凭证接口怎么区别,有啥区别?
指定银行卡签约使用预签约接口
普通签约使用获取授权凭证接口
2.5 预签约接口中,签约模式怎么理解?
签约模式非必填,如果传入的话,根据传入的字段判断签约模式。
指定卡签约:必须使用指定卡签约,没绑卡会触发一键绑卡逻辑,扣款时不垫资,不轮卡。
优先卡签约:优先使用传入的卡号签约,没绑卡会触发一键绑卡逻辑,若因为手机号错误会降级为不指定卡,允许用户使用其他卡签约,指定成功扣款时不垫资、不轮卡,降级后会垫资会轮卡。
任意卡签约:就是普通签约。
2.6 我怎么查询用户的签约时间、解约时间?
- 调用刷脸用户信息查询接口,获取接口返回的签约id,同时就能获取用户的签约状态
- 根据签约id调用签约查询接口,即可知悉用户的签约时间、解约时间以及签约状态
# 3.签名相关
3.1 接口文档中哪些是用api签名,哪些是api v3签名
获取authinfo用api签名,其他接口都是api v3签名
3.2 接口返回“签名错误,验签失败”
注意开发语言
- python语言:转义问题, python语言会自动处理汉字的转义, 默认转义, 商户发的和我们收到的不一样,参数转json字符串的时候,里面的中文我们需要的是ascii
- 其他语言:参考api v3文档即可
- 注意时间格式
签名排查指引:
1、使用签名检查工具校验签名算法是否有误
2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)
3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)
4、确认参数的大小写,参数名与接口文档一致
5、签名原串的参数值使用原始值,不需要encode
6、接口需要使用UTF-8编码
7、openid是否对应当前调起授权的微信号
8、H5授权跳转URL排查URL格式是否正确,如是否多了空格、车牌参数是否没有进行URL编码转义(注:车牌参数跳转url中需要转义,参与sign生成的时不需要)
签名问题,微信侧不做定位
# 4.离线刷脸终端
4.1 终端接口调用,demo调试问题
1.请求接口
2.请求参数
3.返回参数
4.请求时间
终端问题均按照上面的模板提供下信息,方便问题快速定位
4.2 如果没有联网,是否可以初始化离线刷脸SDK?
不可以,每次调用都需要刷脸SDK都需要初始化;
4.3 离线刷脸SDK的初始化,是否每次启动离线刷脸SDK都需要初始化,初始化授权凭证有效期是多久,多久需要更新?
authinfo有效时间是36个小时,我们建议是一个小时进行更新一次
4.4 家长在采集人脸的时候采集签约成功后,在食堂就餐的时候无法识别人脸怎么办?
- 服务商需明确下,用户签约之后,对应的人脸特征值是否下发到设备上(一般在网络情况良好的情况下用户签约5分钟之后就会下发)
- 如用户人脸特征值未自动下发,可调用终端手动更新人脸库接口手动拉取下人脸特征
- 如手动拉取不到用户的人脸特征值,建议提供具体信息给到微信侧
# 5.其他相关
5.1 测试商户号每日限额是多少,能调高限额嘛?
测试商户号每日限额是一元,不可调整额度,测试时可调整测试金额大小完成测试
5.2 退款接口是否使用现有接口?
通用退款接口
5.3 风险用户输入手机号的前端提示页面是服务商构建还是微信侧直接弹出?
服务商弹出
5.4 商户的代扣权限在商户号上开通,机构ID的关系怎样维护?
服务商理解:通过公共参数与机构ID建立关系,双方维护商户号与机构id的关系,商户号与机构ID可以多对1吗,商户号变更如何处理。
机构id与商户号无关系,保证唯一即可;机构id只与服务商商户号有关
5.5 支付用户信息查询接口是否支持批量查询?
若微信无法提供用户冻结/解冻通知,服务商只能批量去查询用户的账户状态,此时批量查询使用的是否还是<支付用户信息查询>接口,还是其他接口?
扣款完成/失败/账户禁用等信息,微信侧会同步给服务商
5.6 异步扣款的通知频率是怎样的,和线上一致么?
微信总共会发起10次通知,通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m) 和线上一样
5.7 正式商户号的限额情况如何
微信人脸代扣的单笔限额100元 当日限额500元。服务商可在此基础做个性化限额;
5.8 垫资怎么接入,一个用户能垫资多少次,垫资订单怎么查询
1.垫资接入需要根据垫资接入流程文档进行申请;
2.每个用户有三次垫资次数,超过三次未还无法继续垫资;
3.垫资订单的查询需要调用通用查单接口去查询,目前该功能正在排期中
5.9 学生在设备处刷脸/刷卡消费之后,服务商系统如何获取到这个消费信息,然后向微信侧发起扣款申请。设备服务商在接入微信支付时,需要按微信侧的规范实现一些设备接口,还是说要服务商侧跟设备提供上进行具体的对接来获取这个消费信息。
- 学生消费确认支付,SDK会返回支付凭证给服务商,服务商自己保存上传到服务商后台,后台根据凭证去支付后台发起扣款,支付成功就是成功了,具体的扣款成功的结果和消费信息需要去找后台对接
5.10 没有网络 可以消费吗?
离线是指 刷脸识别不依赖网络、人脸特征和算法都下载到了设备上,能进行离线识别。
设备本身还是需要正常联网的,以便更新算法、人脸库、商户app。
- 订单被垫资、垫资后用户还款,这些状态 服务商可以后台接口查询到。这样服务商就能记录每个用户的垫资情况。服务商可以把这个状态同步到设备上,对没有垫资资格的用户进行禁止交易。
2.用户刷了多笔交易,在终端提交订单给服务商后台时候,服务商后台可以做判断,如果超出限制,可以通知终端禁止交易。(这种需要设备联网,用户刷脸识别后、在提交订单给服务商后台,服务商后台做判断)
消费机要求常态,是联网状态,联网状态下同步了的人员,在这个时候断网过后,已经同步的信息就能脱机刷脸用。理论上,断网过后,新录人员是用不了的
# 产品类
# 问题一:
需求: 代扣说明-12用户冻结/解冻信息可通知服务商,能否一期提供?(需二期)
问: 当此交易为垫资交易场景,服务商会主动查询用户状态;以便将用户被冻结的状态更新,但用户被解冻,我们无法得知,此时功能残缺,无法使用。 答: 用户被禁用,会同步给服务商(一期可提供)
# 问题二:
需求: 当前服务商侧调用委托代扣接口走垫资场景,异步通知时,能否告知服务商侧此交易为垫资?
答: 服务商提交扣款申请,平台会进行扣款,如果扣款失败,平台侧会自动发起垫资,无需服务商提交垫资交易申请
您描述的我们明白,目前我们希望知道这笔交易走的垫资,但是没有明确的标识告诉我们,我们希望在垫资场景下的异步通知,告知我们此交易为垫资。
答: 如果用户这次消费是垫资,我们会通知服务商。这样有利于提醒家长还款,但一期的开发量比较大,所以这个要放到二期来实现了。
问: 若是一期不能实现,则期间存在伤害点:
用户体验,当学生现场无法就餐,服务商无法准确查询原因,只能根据微信侧返回的提示告知现场;
若学生出现一次欠款后,学校侧、服务商侧无法准确预知学生即将无法就餐,只能等到学生无法就餐后,才能知悉。
答: 目前垫资回调通知开发完成,功能测试中
# 问题三:
位置: 设备使用过程-3.摄像头保护:摄像头预识别30秒没有人脸,则关闭,前屏界面出现按钮,点击按钮激活摄像头。
场景补充: 此场景只是其中一个场景,摄像头保护的所有场景为:
预识别-开启引导页:摄像头预识别30秒没有人脸,则关闭,前屏界面出现按钮,点击按钮激活摄像头
预识别-关闭引导页:摄像头预识别10分钟没有人脸,则关闭,前屏界面出现按钮,点击按钮激活摄像头
后识别:开启摄像头识别后,若60s内无比对成功结果,则超时关闭摄像头
问: 已提供给微信侧具体场景视频,待确定是否满足。
答: 计划提供四个接口:
1)开启摄像头
2)关闭摄像头
3)开始摄像头但屏幕不显示画面
4)开启摄像头屏幕显示画面。
这样开启/关闭的时间完全由服务商根据需要进行控制,应该可以满足以上需要了。
# 问题四:
需求: 委托代扣签约完成后能否返回微信签约账号(可以脱敏)?
(账号信息不能返回,只是返回学生id)
问: 伤害点:服务商售后支持在接到签约相关问题时,无法回答家长为学生签约错账号、当学生无法就餐时,无法告知家长应该查看哪个微信账号。
答: 服务商可通过后台接口获取的签约id明确签约微信账号
# 问题五:
问: 请问新增加的<代扣风控>阶段是服务商委托代扣提交申请的同步返回,还是异步通知返回?
答: 扣款的结果同时给出,如果是异步扣款,那就跟异步扣款结果同时给出
问: 用户账户被风控掉,是否可以走垫资?
答: 两种情况:
1、用户如果欠款过多被禁用,则无法使用刷脸服务,也不会垫资
2、如果是提交订单被风控判断为异常订单,比如地点不对、时间不对等,也无法代扣和垫资
# 问题六:
问: 垫资发起是服务商发起还是微信发起?
答: 垫资是由微信侧发起: 服务商提交订单,微信侧发起用户扣款,如果扣款失败,则微信则就会发起垫资 如果垫资失败,则服务商再次提交订单,微信侧再次发起垫资