收藏
回答

getUnlimitedQRCode接口scene最多只能32个字符,想传2个参数都传不了

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug getUnlimitedQRCode 微信iOS客户端 8.0.49 3.3.4

https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

希望生成的小程序码中,携带参数 【id=页面资源id&from=分享用户id】 , 然而page不能传参,scene最多只支持32个字符,id和from参数都是bigint类型,导致传2个参数超过32个字符的限制,生成小程序码失败,请问大家都是如何解决的呢?

回答关注问题邀请回答
收藏

3 个回答

  • .
    .
    05-22

    id长度很长大概率是考虑唯一性使用的UUID,可以考虑对id MD5摘要,将映射关系存储。考虑不破坏原数据表结构的话可以使用redis存储,换算原id效率也高

    05-22
    有用 1
    回复
  • 风清雾云开见日出
    风清雾云开见日出
    05-22

    在你的数据库中再加个参数不就行了,参数值就是1、2、3、4.......100,对应你的【id和from参数都是bigint类型

    05-22
    有用
    回复 2
    • 寂心禅ོོ
      寂心禅ོོ
      05-22
      谢谢,我们id值的长度类似 1790635238839615490 这样长的,像你说那种再加一列存1,2,3,4.... ,这两种格式的id放在同一张表里,DB可能会骂人的
      05-22
      回复
    • 风清雾云开见日出
      风清雾云开见日出
      05-22回复寂心禅ོོ
      微信与你们公司的DB总有个退让,大概率是你公司的DB退让,要么增加个字段,要么增加一张表,就这个id与对应的序号
      05-22
      回复
  • จุ๊บ
    จุ๊บ
    05-22

    将参数值用字符拼接,收到参数根据字符分割就好了;例如 scene 为 3,5 根据逗号分割后 3就是页面资源id的值,5就是分享用户id

    05-22
    有用
    回复 1
    • 寂心禅ོོ
      寂心禅ོོ
      05-22
      感谢回答,如果id值的长度很短就很好解决,但我们这一个id值的长度都快有20个字符了,除非把id的生成方式改成从1自增,对原来的数据破坏性比较大
      05-22
      回复
登录 后发表内容