微信接口调用一直是 invalid signature

发布于 2022-09-01 05:10:48 字数 1030 浏览 18 评论 0

最近在开发过程中用到微信的分享接口,但是按照他的文档来生成签名时,却一直出现invalid signature 的情况。
按照他提供的检测工具,检测出来的结果是正确的。
生成签名需要的参数

签名无效

我这里获取签名的方法是在静态页面里通过异步传递当前url给php来获取,方法如下:
静态页面异步获取

php获取方法使用的就是官方提供的例子修改的,签名算法应该没有问题。
url获取方法是参考http://segmentfault.com/q/1010000002502269,这个来实现的。
请问有人知道这是什么问题吗?
PS:刚刚测试发现,在手机上直接访问页面www.8-yi.com/passby/,然后是可以正常分享的,也就是签名正确了,但是分享以后(分享设置的link是:www.8-yi.com/passby/),再点开就会出现签名无效的情况,alert发现url后面被追加了一些微信的参数,但是即使这样,url也不算是错误的吧?为什么算出来的签名就是无效的呢?
因为我的url本身不需要参数,所以我把url获取方法改成:
var targetUrl = location.href.split('?')[0];//这里以 ? 作为分割,获取url
这样这里获取的url就跟直接访问时是一样的了,但是签名依然无效!!
都要疯了~~~
谢谢各位了~~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

嘿看小鸭子会跑 2022-09-08 05:10:48

哈哈,自己找到了问题所在,这里跟大家分享一下吧。
我的问题主要是二次分享时签名就会无效,原因就是二次分享的连接被微信加上了参数,有两个(或者更多),这样二次分享的url就变成了www.8-yi.com/passby/index.html?from=singlemessage&isappinstalled=0
注意这里的&符号,由于我使用的是get方法,这样服务端接收到的url就会丢失&后面的字符,所以导致url不正确,进而导致签名无效。
解决方法也很简单,就是在传递参数之前把这个字符转成编码,像这样:
var targetUrl = location.href.split('#')[0];
targetUrl = targetUrl.replace('&', '%26');
就可以了

快乐很简单 2022-09-08 05:10:48

收藏学习了。。。。。。。。。。。。

拍不死你 2022-09-08 05:10:48

如果进入就报invalid signature错误怎么解决,用的是官方的jssdk和sample文件,微信的测试号appid和appSecret

云归处 2022-09-08 05:10:48

地址不能是www.sxsxsx/aad/

一定要吧地址写完整,index.php, 不然就会出现问题,而且是很难发现的这个致命错误

听风念你 2022-09-08 05:10:48

微信签名不正确,一般原因是,传给服务器端的url和分享的link不一致导致。所以务必保证一致。
eg: 分享的信息

 wx.onMenuShareTimeline({
            title: '上南瓜租房,找品牌公寓',
            link: window.location.href.split('#')[0],
            imgUrl: 'https://pic.kuaizhan.com/g3/42/d4/5a65-2d67-4947-97fd-9844135d1fb764/imageView/v1/thumbnail/200x200',
            desc: '南瓜租房,只租真房源!',
}); //分享到朋友圈

和调用接口以获取签名信息,传递的url参数

    Service.get('https://wx-open-api.focus.cn/ajax/wxJsConfig', {
        url: encodeURIComponent(window.location.href.split('#')[0]),
        sceneType: 6,
    })

两个url要保持一致。注意给接口传递url参数时,要对url编码,要不然接收的参数会由于特殊字符(eg: &)给中断
项目展示(spa,路由h5 history):https://m.focus.cn/bj/nangua/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文