解决微信js-jdk invalid signature 签名非法的问题

timg?image&quality=80&size=b9999_10000&sec=1517401690303&di=c281fc3ce24a7b1c21953f8f3e2177cc&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D1724495011%2C1941983274%26fm%3D214%26gp%3D0.jpg
内容如题:解决微信jdk invalid signature 签名非法的问题balabala~~~php

今日做者在解决一个微信公众号网页上传图片的问题
百般调试后仍是调用不了微信上传文件的 wx.chooseImage({})方法。

偶然在度娘看到decodeURIComponent()这个方法,恍悟是否是本身的域名连接传递时被编码了 
因而乎直接简单粗暴alert出来。
果不其然,url中特殊符号均被encode编码

解决方法很简单:前端

decodeURIComponent(document.URL.split(‘#’)[0])

附上vue代码:vue

// 获取微信配置
    this.$http.post('/jsConfig/getConfig', Qs.stringify({url: url})).then(response => {
      wx.config({
        debug: false, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印。
        appId: response.data.data.appId, // 必填,企业号的惟一标识,此处填写企业号corpid
        timestamp: response.data.data.timestamp, // 必填,生成签名的时间戳
        nonceStr: response.data.data.nonceStr, // 必填,生成签名的随机串
        signature: response.data.data.signature, // 必填,签名,见附录1
        jsApiList: response.data.data.jsApiList // 必填,须要使用的JS接口列表,全部JS接口列表见附录2
      })
      wx.ready(function () {
      })
      wx.error(function (res) {
      })
    })

最后解决调用微信jssdk报错的问题jquery

wx.chooseImage({
        count: 1, // 默认9
        sizeType: ['original', 'compressed'], // 能够指定是原图仍是压缩图,默认两者都有
        sourceType: ['album', 'camera'], // 能够指定来源是相册仍是相机,默认两者都有
        success: function (res) {
          self.$vux.loading.show({
            text: '图片上传中'
          })
       })

前端技术锦集:我的博客 (vue,jquery,建站教程) ,才疏学浅,不到之处还请指正。api

【更新】
回答了一下别人的问题,还有人遇到invalid signature 时是由于access token 过时的问题,补充息知。微信

相关文章
相关标签/搜索