首先,可以先使用签名校验工具检验一下生成的signature
是否和自己生成的结果一致。
既然报了这个错误,那自然是自己的结果和这个结果不一样了。
一般导致这个问题的原因是参与签名的url地址不正确,需要动态地获取完整的url地址(包括后面的参数,但是不能包含#
号)。例如一个url地址为http://www.example.com/sd/sw?a=1&b=2#id=10
,那么完整的url地址应该是截取#
号之前的所有部分。为什么会出现#
号呢?因为你的URL在被分享到朋友圈等微信系统自动会添加一些参数。
所以,需要在前端动态地将正确的url地址传递到后端。例如使用jQuery ajax的形式
$.ajax({
url: '生成签名的地址',
type: 'POST',
data: {
url: location.href.split('#')[0]
},
success: function(data) {
jscallback(data);
}
});
如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!
如无特殊声明,文章均为原创,若有不正之处,万望告知。转载请附上原文地址,十分感谢!