生成小程序二维码传参scene的问题

一、报错提示

'{"errcode":40169,"errmsg":"invalid length for scene, or the data is not json string hint: [MHecNHnre-dcD9Wa]"}'
复制代码
  • 原因:参数 scene 超过了32位

二、官方文档,如图

avatar

三、解决方法(有些方法不治本)

(1)、请求接口方式

  • 把scene数据md5加密;
  • 后端 redis:key-value(md5加密后的scene:scene原文) 或 数据表 存scene的数据;
  • 小程序获取到scene之后,请求后端接口根据md5后的值获取加密前的数据。

(2)、缩短参数名

  • 比如:
$param['user_id'] = 999;
$param['shopper'] = 3;
$data['scene'] = http_build_query($param);
复制代码
  • 缩短为:
$param['u'] = 999;
$param['s'] = 3;
$data['scene'] = http_build_query($param);
复制代码

(3)、英文字符隔开参数,和前端约定每个位置的值代表的含义(推荐这个)

  • 比如:
$param['user_id'] = 999;
$param['shopper'] = 3;
$data['scene'] = http_build_query($param);
复制代码
  • 可以用英文字符 ,;_等隔开,如下
$userId = 999;
$shopper = 3;
$data['scene'] =  $userId . ';' . $shopper;
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享