blog
blog copied to clipboard
微信扫码参数丢失问题
前端生成一个二维码如果地址中携带参数,微信第一次访问的时候wx浏览器转发会丢失参数!
微信扫码功能url参数丢失问题
#技术笔记/日常开发问题总结
前端生成一个二维码如果地址中携带参数,微信第一次访问的时候wx浏览器会丢失参数!
微信扫码二维码,第一次显示接口没有返回值,在扫一次就好了正常显示了页面。这种诡异的情况,在内测上,测试人员是一脸的懵逼状态。为啥第二次扫就没问题。
排查问题之前的思考🤔
排查问题之前的分析,第一次扫,这个第一次是个特殊情况,第一次我们服务做了什么呢 微信匿名用户: 第一次访问的时候,我们对用户进行了匿名用户处理,去微信服务器获取签名认证OAuth验证接口 - 企业号开发者接口文档 这里面的关键点在于 redirect 重定向,获取签名后有一个重定向的问题。是不是重定向搞掉了参数?
然后排查微信签名处的代码,
encodeURIComponent(route.path)
路由对象属性
-
$route.path
- 类型:string 字符串,对应当前路由的路径,总是解析为绝对路径,如”/foo/bar”。
-
$route.fullPath
- 类型:string 完成解析后的 URL,包含查询参数和 hash 的完整路径。
果然是我们自己搞掉了参数
总结: 过程其实并没有这么简单,一开始我们陷入了接口报错里面,另外测试手机每天都在测试环境测试,根本没有及时发现第一扫这个问题,因为已经是第N+几次了。 测试用例也没有关于第一次扫这个概念。而且微信授权这一坨代码一直在老项目里面跑的很稳定,新项目里面移植过来这一年也没有出现第一次就要授权传参数的场景。亦或是我们没有发现第一次的问题。whatever 问题总算解决了。