记小程序二维码扫描参数解析错误问题(笔记)

1,091 阅读1分钟

背景

在开发小程序二维码扫描进入小程序时,没看文档以为后台参数是page?shop_id这种形式。因此在这个页面处理接收shop_id的参数。但测试人员说进入这个页面无效。因此从后台得知生成二维码的参数是以另外一种形式

文档

调试

首先拿到生成的二维码,打开微信开发者工具,

  1. 二维码图片文件上传和模拟操作改为扫描二维码
  2. 或者直接扫描二维码编译


参数解析

通过上一步的操作,我们去尝试输入得到页面参数是{scene: "shop_id%3D100434"},这里后台其实是shop_id=100434但经过这个微信的url编码变成了其他形式。注意:后台本想传jons字符串形式但微信不支持这样的传法。


获取 scene 值

scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。
调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent

在页面中接收参数 

 let scene = decodeURIComponent(option.scene);
 //得到字符串shop_id=1000434 let shop_id = scene.split("=")[1];//目前scene只传shop_id

结语

仅做笔记用