收藏
回答

微信公众号调用扫一扫功能报错:config:invalid signature?

api: wx.scanQRCode

微信版本:8.0.1

jsapi_ticket=HoagFKDcsGMVCIY2vOjf9k3Tt6V7Pq0z2ms_qAb1pTSRZYFrielVF2Iqmqq0kkV5CeE7P5jofZ-WrYWuVpjKQw&noncestr=ff2f19ea-4972-45f8-979a-1bff7d6388e5&timestamp=1612262269&url=https://sit.halcyonz.com/ubi-mobile-h5/myCar

签名:2f5d9955e8d3e6dd29a7c437032872f2b005cab5

代码:

getJsSdkConfigParam(){
  // let signUrl = window.location.href.split('#')[0];
  let signUrl = window.location.href
  alert('signUrl:' + signUrl)
  let params = {
    url: signUrl,
    tenantType: this.$netConfig.ShareCom,
  }

  let self = this

  this.$axios.post(this.$netConfig.restful.wechat.jsSdkConfigParam, params)
    .then(resp => {
      console.log("resp ==== ", JSON.stringify(resp));
      wx.config({
        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: resp.appId, // 必填,公众号的唯一标识
        timestamp: resp.timestamp, // 必填,生成签名的时间戳
        nonceStr: resp.nonceStr, // 必填,生成签名的随机串
        signature: resp.signature,// 必填,签名
        jsApiList: ['scanQRCode'], // 必填,需要使用的JS接口列表
      })

      this.checkIsReady().then(()=>{
        self.isJSSDKReady = true;
        console.log("----JSSDKReady----")
      }).catch((err)=>{
        console.log("----JSSDKerror----:"+JSON.stringify(err))
      });

      wx.checkJsApi({
        jsApiList: ['scanQRCode'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
        success: function(res) {
          // 以键值对的形式返回,可用的api值true,不可用为false
          // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
          console.log("----JSSDKCheck----:"+JSON.stringify(res))
        }
      });
    })
    .catch(error => {
      console.log('error---' + error);
    });
},

checkIsReady() {
  return new Promise((resolve, reject) => {
    wx.ready(() => resolve());
    wx.error(err => reject(err))
  })
},



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

1 个回答

  • 王子麟
    王子麟
    2021-02-20

    同样的问题,检验你再微信开发者工具里预览一下,如果能调起就和我的问题一样,暂时没发解决,安卓设备正常

    2021-02-20
    有用
    回复
登录 后发表内容
问题标签