收藏
回答

扫一扫 出现errmsg :config: invalid signature?

上图是后端返回数据

let data = {url: encodeURIComponent(window.location.href).split('?')[0]}

      let responseData = await this.$topRequest('POST', requestUrls.sPostBusinessManageSelectElevatorGetWechatSignatureUrl, data)

        if (responseData.code !== 200) {

          return this.$toast(responseData.message)

        } else {

          let result = responseData.data

          wx.config({

            debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

            appId: result.appId,// 必填,公众号的唯一标识

            timestamp: "" + result.timestamp,// 必填,生成签名的时间戳

            nonceStr: result.nonceStr,   // 必填,生成签名的随机串

            signature: result.signature,    // 必填,签名,见附录1

            jsApiList: [ 'scanQRCode']  // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

          })

          // 失败

          wx.error(function (res) {

            console.log(res.errMsg, '失败')

            alert("出错了:" + res.errMsg);//这个地方的好处就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。

          });

          // 成功

          wx.ready(function (res) {

            console.log(res, '成功')

            wx.scanQRCode({

              needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,

              desc: 'scanQRCode desc',

              scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有

              success: function (res) {

                // 重定向

                let _this = this

                // window.location.href = res.resultStr; // 当needResult 为 1 时,扫码返回的结果

                // 获取终端详细信息

                _this.getElevator(JSON.stringify(res.resultStr).split('=')[1])

              }

            });

          });

        }

代码是前端调用

最后一次编辑于  2021-12-27
回答关注问题邀请回答
收藏

1 个回答

  • 小东哥
    小东哥
    2022-05-15

    url不用编码,直接传

    2022-05-15
    有用 1
    回复
登录 后发表内容