收藏
回答

生成带参数页面二维码一定是要是正式版才可以正常获取二维码吗?

export function getQrCode(token, pageUrl, scene) {
  // 注意 access_token 参数是必须放在url后面 其余参数 要在data里面
  console.log("生成二维码入参", token, pageUrl, scene)


  return new Promise((resolve, reject) => {
    uni.request({
      method: "POST",
      url: `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${token}`,
      data: {
        page: pageUrl, // 需要打开的页面路径
        scene: decodeURIComponent(scene), // 这个是需要传递的参数
        check_path: false,
        env_version: "release" // 正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版
      },


      responseType: 'arraybuffer', // 注意一定要加 不然返回的Buffer流会乱码 导致无法转base64
      success: (result) => {
        // 拿到buffer流 通过wx.arrayBufferToBase64 转成base64 在页面展示
        // 如果请求时不加 responseType: 'arraybuffer' 拿到的buffer流转码会失败
        const base64String = "data:image/png;base64," + wx.arrayBufferToBase64(result.data);
        resolve(base64String);
      },
      fail: (err) => {
        // 处理失败情况
        console.log("生成二维码失败", err)
        reject(err);
      }
    });
  });
}这是常打开的画面是没有二维码的

但是在体验版里打开了微信调试工具就可以正常出现二维码了

同时我也维护了合法域名地址

最后一次编辑于  09-19
回答关注问题邀请回答
收藏

1 个回答

  • Hlxuan.
    Hlxuan.
    09-19

    api.weixin.qq.com 相关API为服务端接口,不能在小程序内调用。你要改成在服务端调用,小程序内请求你服务端的接口。

    09-19
    有用
    回复 1
    • _小D.Devil 😈
      _小D.Devil 😈
      09-20
      谢谢大佬 放在后端就解决了
      09-20
      回复
登录 后发表内容