按照官方排错文档仔仔细细排错了几遍,都没有发现问题。始终报invalid signature错误,报错也不详细,就一个invalid signature,我也不知道到底是哪里的问题。
之前是用hash模式路由,后来改为了history模式,但是给签名的url都是正确的,在微信js校验工具里面测试,签名也是正确的。
传入的地址是全地址,包含http://和路由地址。
麻烦各位大佬指点一下,但凡有一点办法,我也不会来这里求助。谢谢大佬们,下面放代码:
var strUrl = location.href.split('#')[0];
$.ajax({
type: "Post",
url: "xxx",
data: JSON.stringify({
str: encodeURIComponent(strUrl)
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
wxconifg(data.data);
},
error: function(jqXHR, textStatus, errorThrown) {}
});
function wxconifg(WXDate) {
wx.config({
debug: false,
appId: WXDate.appId,
timestamp: Number(WXDate.timestamp), //1595837986
nonceStr: WXDate.nonceStr, //7ba9788c-315d-4639-9176-a98cb607486d
signature: WXDate.signature, //d01eb9f4df70fbdf179bd3b45decd0b532bd9562
jsApiList: ["checkJsApi", "onMenuShareTimeline", "onMenuShareAppMessage", "onMenuShareQQ", "onMenuShareQZone",
"getLocalImgData", "chooseImage"
],
fail: (err) => {
console.log('wx.config_errpr:', err);
}
});
wx.ready(function() {
wx.onMenuShareAppMessage(objInfo);
wx.onMenuShareTimeline(shareInfo);
});
wx.error(function(err) {
console.log('wx.error:', err)
});
}
你好,有对照这里提供的解决方法么?https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
问题已经解决了,检查了一万遍,前端和后端都没有问题,最后发现,是运维人员把白名单IP改了!!!!!
有相同问题的开发者们,可以看看服务器的IP和白名单里面设置的IP是不是一样的。