美文网首页
写给银行前端——免输卡号绑卡开发中的坑

写给银行前端——免输卡号绑卡开发中的坑

作者: 春花_ | 来源:发表于2022-07-19 14:28 被阅读0次

背景:地方银行上线微信中的免输卡号绑卡功能,微信文档一惯的仅供参考,虽然拉了群,群内有微信方的技术助手,但一些问题能帮上忙,绝大多数问题还得靠自己推理解决。

直接上干货

坑一:拉起验短方法,不能按照文档写。


image.png

也是大意,文档已经写明了“请求示例”,大概就是留下了最终解释权的意思吧。
验短方法属于隐藏的js-sdk,需要像《微信网页开发 /JS-SDK说明文档》中的操作方式,先请求接口验签,然后wx.config,再在wx.ready内调用。而调用方式依旧不是文档中的wx.phoneBindCardVerifySms,而是使用WeixinJSBridge.invoke("phoneBindCardVerifySms", {})

坑二:拉起验短IOS端报错invalid signature
如果前后分离项目并且双方都是首次开发微信绑卡,则大概率遇此坑。
免输卡号绑卡页面参数很长,且有类似于“+”、“==”、等特殊符号。正常获取微信签名的接口入参传window.location.href.split("#")[0]就可以,但这种参数很长且有特殊符号的情况下,IOS端会报错。debug模式下可看到realAuthUrl...errMsg:'config:invalid signature' 由此可推断大概率为url入参的问题。
首先取后端加工signature的各个字符串在微信提供的验证signature正确性的工具页面验证,得到结果是加工方式是正确的,结果也是正确的。那么为什么验证失败呢?那就从debug提示的另一条重要信息入手,realAuthUrl。对比发现:realAuthUrl与加工signature使用的url是不同的,前端传入的url入参经过浏览器自动编译,出现了一些%号等符合,原本的“+”等也被转译了。而realAuthUrl是原本的URL参数字符串。由此可得:微信与IOS端交互时,取用的url参数是未经转译的原本URL参数。然后后端同学对收到的url入参进行加工,decode后“+”需要手动再转一下。验证:IOS通过,安卓通过。(安卓是全自动的,怎么着都行)

相关文章

  • 写给银行前端——免输卡号绑卡开发中的坑

    背景:地方银行上线微信中的免输卡号绑卡功能,微信文档一惯的仅供参考,虽然拉了群,群内有微信方的技术助手,但一些问题...

  • 算法:Luhn算法

    背景 绑卡签约/支付时,想对用户输入的银行卡卡号做个简单的校验,以防止用户粗心输入错误的银行卡卡号。 算法介绍 L...

  • 银行卡号编码规则及其应用

    绑卡时输入银行卡号后识别出银行和卡种是如何做到的?为什么能够在卡号输入有误时进行友好提示?本篇文章将为大家揭晓。 ...

  • 金融支付:银行卡号的编码规则及其应用

    互联网金融产品的绑卡操作是核心功能,怎么根据用户提供的银行卡号来识别开户行和银行卡种类?如何识别用户银行卡信息的有...

  • 支付宝竟然可以查看绑定的银行卡号,赞!

    你是不是有这样的烦恼?有的时候需要查看银行卡号,但是银行卡却不在身边。 那么怎么去快捷的查看银行卡卡号呢? 银行卡...

  • 什么是私钥、密钥、地址?

    若以银行账户为类比,这 5 个词分别对应内容如下: 地址=银行卡号密码=银行卡密码私钥=银行卡号+银行卡密码助记词...

  • 银行卡拍照识别技术

    日常生活中相信你有过这种经历,在手机狭小的屏幕上输入银行卡卡号还是比较困难的。现在有一种“银行卡卡号识别”的技术,...

  • Android开发工具类

    BankCheck:银行卡管理 checkBankCard : 校验银行卡卡号是否合法getBankCardChe...

  • iOS关于银行卡号

    因为项目中涉及到银行卡的部分功能,所以搜集了一些开发小工具.用于展示银行卡,判断银行卡号是否正确,以及开卡行的判断...

  • iOS扫描银行卡获取银行卡号

    扫描银行卡获取银行卡号(银行卡必须是卡号凸出来的那种,否则无法识别)1、下载CardIO,Card.io是让手机摄...

网友评论

      本文标题:写给银行前端——免输卡号绑卡开发中的坑

      本文链接:https://www.haomeiwen.com/subject/vsgeirtx.html