收藏
回答

微信测试公众号开发JSSDK接口出现invalid signature?

调用微信JSSDK一直提示无效签名,用微信提供的工具检查了签名,跟我后台生成的是一样的,也按照官方文档对url进行截取掉#,前后台的appid也是一样的,还是出现invalid signature



下面是调用的代码

$(function(){
$(".butt").bind("click",function(){
console.log((location.href.split('#')[0]))
var signUrl = encodeURIComponent(window.location.href.split('#')[0]);
     $.ajax({
url: "http://hzf.free.idcfengye.com/ncgascip-app/weixinsdk/config",
        method: "post",
        data: {
url: signUrl
},
        success: function (data) {
console.log(data);
           console.log("wx.config() ---> 接收后台返回的参数");
           wx.config({
debug: true,
              appId: "wx7728a7e3070b5acd",
              timestamp: data.data.timestamp,
              nonceStr: data.data.nonceStr,
              signature: data.data.signature,
              jsApiList: [ 'chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'chooseWXPay', 'getLocalImgData' ]
});
           wx.error(function (res) {
console.log(res);
                  });
           wx.ready(function(){
wx.chooseImage({
count: 1, // 默认9
                 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
                 sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
                 success: function (res) {
$("#photolist").html(""); //每次选择图片完成后都清空之前已经添加的html节点
                   let rows = ""; //声明一个空字符串用于保存循环出来的html
                   // var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
                   images.localId = images.localId.concat(res.localIds);
                   if (window.__wxjs_is_wkwebview) { //判断ios是不是用的 wkwebview 内核
                    for (var i = 0; i < images.localId.length; i++) {
wx.getLocalImgData({ //循环调用 getLocalImgData
                       localId: res.localIds[i],
                       // 图片的localID
                       success: function(res) {
var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
                         localData = localData.replace('jgp', 'jpeg'); //iOS 系统里面得到的数据,类型为 image/jgp,因此需要替换一下
                         ioslocId.push(localData) //把base64格式的图片添加到ioslocId数组里 这样该数组里的元素都是base64格式的
                         rows = "";
                         for (var j = 0; j < ioslocId.length; j++) {
rows += `<div class = "z_file" style = "background-image: url(` + ioslocId[j] + `);height:100px;"> <div class = "delete"data - id = "` + j + `" > </div></div> `;
                         }
$("#photolist").html(rows);
                       },
                       fail: function(res) {
alert("res");
                       }
});
                    }
alert(rows)
} else { //如果不是用的wkwebview 内核 或者是用的安卓系统 执行下面的循环
                    $.each(images.localId,
                       function(index, el) {
rows += `<div class = "z_file" style = "background-image: url(` + el + `); height:100px;" > <div class = "delete" data-id= "` + index + `"> </div></div>`;
                       }
);
                    $("#photolist").html(rows);
                   }
}
});
           })
}
});
  });
});


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

7 个回答

  • 晶
    2020-04-06

    请问怎么解决的呢,感谢,我也遇到同样问题了

    2020-04-06
    有用
    回复
  • 歪歪梯
    歪歪梯
    2019-12-31

    请问这个问题解决了吗?求助

    2019-12-31
    有用
    回复 1
    • -pd-
      -pd-
      2020-01-16
      你解决了吗,急
      2020-01-16
      回复
  • 🐷🐷
    🐷🐷
    2019-08-15

    请问你这个问题解决了么?我调用地图定位也是同样的问题

    2019-08-15
    有用
    回复 2
    • H
      H
      2019-08-16
      还没解决,一起讨论吧 275665079
      2019-08-16
      回复
    • H
      H
      2019-08-16回复🐷🐷
      跟这个有影响吗
      2019-08-16
      回复
  • 阿白
    阿白
    2019-08-14

    这个问题你处理好了吗 我也是测试号 调用摄像头接口一直报签名错误

    2019-08-14
    有用
    回复 1
    • H
      H
      2019-08-14
      还没解决好,现在也是在找问题在哪里。加个微信一起讨论下吧
      2019-08-14
      回复
  • 香蕉不是笨啦啦
    香蕉不是笨啦啦
    2019-08-14

    指你页面的域名,不是你接口的域名

    2019-08-14
    有用
    回复 2
    • H
      H
      2019-08-14
      什么意思呢,我传到后台的url就是页面的地址
      2019-08-14
      回复
    • H
      H
      2019-08-14
      我是把页面放在apache下面,将页面和后台通过内网穿透到http://hzf.free.idcfengye.com
      2019-08-14
      回复
  • 未命名科技
    未命名科技
    2019-08-14

    signUrl 不需要提前 encodeURIComponent。

    2019-08-14
    有用
    回复 1
    • H
      H
      2019-08-14
      按照你说的,把encodeURIComponent去掉了,还是出现invalid signature
      2019-08-14
      回复
  • H
    H
    2019-08-14

    后台也配置好域名了,还是一直提示invalid signature,想问下有没有大佬遇到这问题


    2019-08-14
    有用
    回复 2
    • H
      H
      2019-08-14
      微信的提示可以人性点,找了两天了,都找不到问题所在
      2019-08-14
      1
      回复
    • -pd-
      -pd-
      2020-01-16
      请问你解决了吗,同问
      2020-01-16
      回复
登录 后发表内容
问题标签