解决微信生成小程序二维码scene参数过长的方法

解决微信生成小程序二维码scene参数过长的方法

    • 方案一、中间页 + 短参数
    • 方案二、短参数(推荐)
    • 方案三、md5加密

小程序二维码scene参数限定长度为32位字符,但是实际开发中可能有很多的参数需要传递

对于目前32位长度的限制

方案一、中间页 + 短参数

新建一个中间空白跳转页面,每次生成的二维码都是这个页面,

访问这个页面时,将参数中的scene的值,去指定接口获取完整的 带参数的 链接,

然后跳转过去。 适用于一个解决方案中有很多个页面需要生成二维码来跳转;

方案二、短参数(推荐)

二维码指向到特定页面,scene值为短参数,进入页面时先判断是否有scene的值,如果有再请求接口获取完整的参数(json格式),

然后再使用这个参数去调真正的业务接口;

方案三、md5加密

1、后台在生成小程序二维码的地方,使用md5加密生成一个小于等于 32 位的 token ,并将scene 原有的值和token在数据库中,或者redis中存储起来, 然后把这个 token 填入生成小程序码接口的 scene 参数中。

2、小程序在扫描二维码之后,将得到的 scene 中的token提交给后端,后端根据token,新增一个接口 用于解析小程序码获取的 token ,返回给真实的scene参数 返回给前端。

php代码

//入库,再返回
$scene='87309*2*hq_activity*62*live_player*57';
$scene_token = substr(md5($scene), 8, 16);
$scene_data = array(
   'scene' => $scene,
   'token' => $scene_token
   );

后台mysql数据库中存入真实的参数 然后在进行比对
在这里插入图片描述

你可能感兴趣的:(Php,微信-小程序)