常见问题
更新时间:2024.12.27常见问题如下展示,其他问题及回答详见:Q&A免输卡号文档 (opens new window)
# 接入前准备
# Q1:一键绑卡是否只需要跟网联联调即可?
A1:银行与网联调通一键绑卡能力,网联会与财付通确认并开通。
# Q2:如何提供白名单?
A2:白名单的用户要同时包含两个系统(ios与安卓)的微信号,且白名单用户需要同时拥有信用卡与储蓄卡(除非银行只上其中一个卡类型)。
# Q3:银行申请的Key与密钥有和不同?
A3:Key主要用于签名验证,密钥主要用于校验用户身份信息;
# 设计规范
# Q1:视觉走查结果在哪里可以看到呢?
A1:请银行在群里咨询运营同学
# Q2:走查邮件提交格式是什么?
A2:以邮件的形式发送,文件以压缩包形式作为附件,格式如下:
- “标题:【XX银行】视觉走查提交
- 收件人:
v_weeicchen@tencent.com
- 抄送:
oscarbwang@tencent.com;
iceyyyang@tencent.com;
aliciahan@tencent.com
- 正文:XX银行提交视觉走查”
- 详情请见官网要求。
# Q3:走查的规范性要求?
A3:详情见官网内容。
- 备注:走查有排期,同时走查的工作量较大,流程比较繁琐,所以建议银行老师在发送前仔细些,争取一次性通过。
# 开发指引
# Q1:如果一键绑卡没有做的话,一键绑卡和免输入卡号同时做,同时调试是否可以?
A1:可以同时做,也可以同时调试。
# Q2:测试环境联调测试账号可以更换用户信息吗?
A2:可以,按以下模板提供信息在群里@技术助手
- 需求:更换实名
- 银行:xx银行
- 微信号:
- 支付uin:(不填)
- 姓名:
- 身份证号:
# Q3:测试账号无法解绑卡号怎么处理?
A3:需解绑卡号可按以下模板提供信息在群里@技术助手
- 需求:解绑卡号
- 银行名称:xx银行
- 卡类型:储蓄卡/信用卡
- 微信号:
- 支付uin:(不填)
- 姓名:
- 身份证号:
# Q4:绑卡时报:“当前银行的银行卡数量已经超过限制”?
A4:同一家银行,同一个卡类型,只能绑三张,两种类型共6张,全部银行一共可绑10张
# Q5:测试环境操作绑卡时报错:“当前使用此业务的用户过多,请稍后再试”?
A5:出现该报错过10分钟左右再重试,一般可解决
# Q6:为什么我们白名单用户不显示绑卡入口?
A6:频繁换设备登录或者在新设备登录会触发安全策略隐藏入口
# Q7:签约返回:“返回报文接受异常”?
A7:该报错一般是以下几点原因:
- 1、签约地址需整体 URLEncode(编码:UTF-8)
- 2、请提供编码后的地址,我们核实一下
- 3、session是否过期,时效10分钟
# Q8:网联签约报文要传的支付机构编码是传什么?
A8:财付通机构编码:Z2004944000010
# Q9:我们测试没看到选借记卡和信用卡的页面,是需要另外配置吗?
A9:如果你们邮件提供过来两个页面地址(借、贷记卡)配置,就会展示两种卡类型的入口;如果只提供一种卡类型页面地址,就置灰另一种类型;如果提供一个地址展示两种类型就没有这个选项页面
# Q10:银行列表选择对应银行后报错“该商户支付权限已被取消”?
A10:一般是传了错误的AppID,请使用邮件提供过来配置的AppID
# Q11:请问下,客户在微信解绑我们行的卡,微信会返回该客户已解约的信息吗?
A11:财付通不一定会发解约通知到银行,该卡绑定的最后一个支付账户发起解绑后,我们会发解约通知到银行。
# Q12:验短API里的package字段传什么?
A12:参考:"package":"bank_type=ICBC_DEBIT"
# Q13:测试环境会真实发短信验证码?
A13:测试环境不会真实请求发短,也不会校验短信验证码,输入000000即可通过。
# Q14:生产环境给用户发短信验证码,是微信发给用户还是银行发给用户呢?
A14:生产环境是银行给用户发短信验证码,详细验短逻辑参考:
- 银行调用微信的验短API接口
- 微信拿到银行给的四要素,去触发对应银行的验短
- 银行收到微信发送的微信验短请求后,给用户的手机号下发验证码
- 用户收到银行发送的验证码,在微信的页面填写银行下发的验证码
- 微信将用户填写的银行码发送给银行验证
- 银行验证成功,返回微信绑卡成功,微信给用户展示绑卡成功
# Q15:“银行需要向财付通提供生产密钥。具体方式为:邮件发送银行密钥给到财付通,财付通会用银行生产密钥进行身份信息加密。”加密还需要银行提供密钥吗,密钥生成有没要求?
A15:银行提供公钥给我们,我们配置后,把加密的信息传给银行,银行用自己的私钥进行解密,加密方式:
- 信息加密方式:RSA公钥加密,采用RSA_PKCS1_PADDING的填充模式,加密后的密文块采用标准BASE64编码表示;(java RSA/ECB/PKCS1Padding)
- RSA密钥生成:由使用数据的业务方生成公私钥对,并将对应的RSA公钥PEM文件提供给财付通侧,建议生成的RSA密钥为2048bit。
# Q16:银行侧需校验微信带过来的OpenID与银行小程序获取的OpenID是否一致?
A16:是的,需要校验,保证用户数据安装,防止越权
# Q17:H5模式如何获取OpenID与微信侧携带OpenID进行校验?
A17:解决方案: 银行侧需要静默授权获取:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
# Q18:如果用户的身份证号带字母X,有没有什么需要特别注意的?
A18:由于各个银行侧逻辑不一样,有些银行对于X大小写有强校验,且用户在银行预留证件号有小写的。所以微信支付直接送了底层数据,有可能大写有可能小写,建议银行做兼容处理
网联报文中由于网联规范明确规定了统一大写,所以可以按照规范走
# Q19:我们安卓端绑卡完成了,想测iOS端绑卡怎么测试呢?
A19:协助测试ios端绑卡需要提供以下模板信息,以及提供下安卓端绑卡成功和无卡可绑的录屏(双卡都要),没问题了我们再拉同事协助测ios的绑卡
- 银行名称:
- 测试微信号:
- 密码:
- 支付密码:
# Q20:调起验短接口(H5模式下)wx.config报错:“invalid signature”?
A20:解决方案:invalid signature签名错误。
建议按如下顺序检查:
- 确认签名算法正确,可用
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
页面工具进行校验。 - 确认config中nonceStr(js中驼峰标准大写S)undefined timestamp与用以签名中的对应noncestrundefined timestamp一致。确认URL是页面完整的URL(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)😕/'部分,以及'?'后面的GET参数部分undefined但不包括'#'hash后面的部分。
- 确认 config 中的 OpenID 与用来获取 jsapi_ticket 的 AppID 一致。
- 确保一定缓存access_token和jsapi_ticket。
- 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将URL传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取undefined而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
# Q21:调起验短接口(H5模式下)wx.config报错:“invalid url domain”?
A21:解决方案:invalid url domain当前页面所在域名与使用的AppID没有绑定,请确认正确填写绑定的域名,仅支持80(HTTP)和443(HTTPS)两个端口,因此不需要填写端口号(一个AppID可以绑定三个有效域名)
# Q22:调起验短接口(H5模式下)wx.config报错:“config:fail”?
A22:解决方案:出现config:fail错误(这是由于传入的config参数不全导致,请确保传入正确的AppID、timestamp、nonceStr、signature和需要使用的jsApiList)
# Q23:调起验短接口(H5模式下)wx.config报错:“the permission value is offline verifying”?
A23:解决方案:the permission value is offline verifying这个错误是因为config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。建议按如下顺序检查:
- 确认config正确通过。
- 如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。
- 确认config的jsApiList参数包含了这个JSAPI。
# Q24:安卓联调成功,IOS免输卡号拉起验短页 报系统繁忙
?
A24:原因:没用字符串的格式传timestamp,这里得用字符串来传,如果传了整形,会读不出来
建议:统一用字符串的形式传 timestamp 的信息
# Q25:微信跳转银行页面需要验证签名,“bind_tail”字段为空也要参与签名吗?
A25:是的,参考:
# Q26:请问下我们H5模式调用验短API是否有demo参考呢?
A26:关于H5模式验短接口的调用可以参考:
- 验短页JSAPI的参数可参考免输卡号绑卡JsApi接口文档:https://pay.weixin.qq.com/wiki/doc/apiv3/Offline/apis/chapter1_1_2.shtml (opens new window)
- jsapi的方式可参考JS-SDK说明文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#2 (opens new window)
- 常见错误及解决方法:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66 (opens new window)
- 目前有java版免输卡号绑卡H5demo参考:
# Q27:如果测试环境主体不是本银行的可以吗?
A27:不可以。如果测试环境主体不是本银行,有可能导致免输卡号的入口展示不出来,而且会导致一些配置很难调,到时候出问题还是得更换为本银行。
# Q28: 客户端日志需要如何上传(双版本)?
A28:客户端上传日志步骤:
- ios:【“通讯录”--右上角“添加好友”按钮--在输入框里输入“:up”--“上传日志”】
- Android:【“我”--“设置”--“帮助与反馈”--右上角“工具”按钮--“上传日志”】