常见问题

更新时间: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:生产环境是银行给用户发短信验证码,详细验短逻辑参考:

  1. 银行调用微信的验短API接口
  2. 微信拿到银行给的四要素,去触发对应银行的验短
  3. 银行收到微信发送的微信验短请求后,给用户的手机号下发验证码
  4. 用户收到银行发送的验证码,在微信的页面填写银行下发的验证码
  5. 微信将用户填写的银行码发送给银行验证
  6. 银行验证成功,返回微信绑卡成功,微信给用户展示绑卡成功

# 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签名错误。

建议按如下顺序检查:

  1. 确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
  2. 确认config中nonceStr(js中驼峰标准大写S)undefined timestamp与用以签名中的对应noncestrundefined timestamp一致。确认URL是页面完整的URL(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)😕/'部分,以及'?'后面的GET参数部分undefined但不包括'#'hash后面的部分。
  3. 确认 config 中的 OpenID 与用来获取 jsapi_ticket 的 AppID 一致。
  4. 确保一定缓存access_token和jsapi_ticket。
  5. 确保你获取用来签名的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参数中。建议按如下顺序检查:

  1. 确认config正确通过。
  2. 如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。
  3. 确认config的jsApiList参数包含了这个JSAPI。

# Q24:安卓联调成功,IOS免输卡号拉起验短页 报系统繁忙

A24:原因:没用字符串的格式传timestamp,这里得用字符串来传,如果传了整形,会读不出来

建议:统一用字符串的形式传 timestamp 的信息

# Q25:微信跳转银行页面需要验证签名,“bind_tail”字段为空也要参与签名吗?

A25:是的,参考:

# Q26:请问下我们H5模式调用验短API是否有demo参考呢?

A26:关于H5模式验短接口的调用可以参考:

  1. 验短页JSAPI的参数可参考免输卡号绑卡JsApi接口文档:https://pay.weixin.qq.com/wiki/doc/apiv3/Offline/apis/chapter1_1_2.shtml (opens new window)
  2. jsapi的方式可参考JS-SDK说明文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#2 (opens new window)
  3. 常见错误及解决方法:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66 (opens new window)
  4. 目前有java版免输卡号绑卡H5demo参考:

# Q27:如果测试环境主体不是本银行的可以吗?

A27:不可以。如果测试环境主体不是本银行,有可能导致免输卡号的入口展示不出来,而且会导致一些配置很难调,到时候出问题还是得更换为本银行。

# Q28: 客户端日志需要如何上传(双版本)?

A28:客户端上传日志步骤:

  1. ios:【“通讯录”--右上角“添加好友”按钮--在输入框里输入“:up”--“上传日志”】
  2. Android:【“我”--“设置”--“帮助与反馈”--右上角“工具”按钮--“上传日志”】
更多技术问题
技术咨询
反馈
咨询
目录

微信支付文档中心已升级,你当前所查看的是旧文档中心的内容,旧文档中心将于 2025年 3 月 31日 下线,请移步 [新文档中心] 查看相应的内容