微信小程序根据小程序码自动解析参数

在服务端生成专属分享码后用户可以用户扫码进入将带上参数,然后小程序里面根据scene值进行解析小程序,这样达到我们想要的效果,比如拉新功能等等。

生成小程序码文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

onLoad: function(query) {
   //store_num%3D99%26from%3Dxiaov//这是解析前的,需要decodeURIComponent解析一下
  //var scene = 'store_num=99&from=xiaov';//模拟query.scene解析后的结果
  //扫码进入后根据二维码参数提交数据
  if (query.scene){
    var scene = decodeURIComponent(query.scene);//store_num=99&from=xiaov
    var paramsObj = {};
    var arrs = scene.split("&");
    for (var i = 0; i < arrs.length; i++) {
      // 分别将 = 左右两边拆分为数组, 动态变为键值对
      paramsObj[arrs[i].split("=")[0]] = arrs[i].split("=")[1]
    }
    
    console.log( paramsObj);//{"from": "xiaov","store_num": "99"}
    //todo 业务逻辑
  }
 }

注意事项:

  1. scene仅在小程序发布后才具有该值,模拟时可以var定义一个或者生产一个带参数的码(必须有某个版本发布过,否则无法生成)扫码模式调试

  2. scene是经过encodeURIComponent()加密过的,所以需要用对应的函数先解密

  3. scene是字符串,需要根据需要分割为自己想要的格式,上面的例子是分割为对象属性值

评论/留言