资讯专栏INFORMATION COLUMN

微信JSSDK提示invalid signature

zone / 1018人阅读

摘要:简直是个神坑,被坑哭了,所以记录一下把微信和改用存,为了避免并发导致次数被用完,加了锁,为了避免以后扩展,改用了分布式锁,改完用并发测试了下,一切正常,。

简直是个神坑,被坑哭了,所以记录一下!

把微信token和ticket改用redis存,为了避免并发导致token次数被用完,加了锁,为了避免以后redis扩展,改用了分布式锁,改完用100并发测试了下,一切正常,perfect。

于是兴匆匆的上线,访问invalid signature ?

确认微信后台各种配置,再上线,invalid signature ?

按官方签名算法确认一遍,还是 invalid signature

我已经开始不相信自己的代码了,换成官方提供的代码,尼玛 invalid signature

后端打印参数,到官网生成signature,发现是一致的,excuse me?

打开微信调试工具,提示升级,升级后打开白板,重启白板,MD,全世界都在与我作对???

然后就已经不想了,看到微信就想吐了...

然后搜了下,说是url要一致,我访问的url就是后端的url,没问题啊,但是还是微信访问后复制了下url,握草,握草,握草

你tm不之不觉的修改了老子的url,老子能不invalid signature吗?

域名还没下来,所以用的IP测试,结果发现IP访问微信会自动跳转并添加一些参数,简直是日了狗了,域名就不存在这个问题

快速解决办法
1、打印参数到官网地址确认签名正确(不一致就按官网步骤找原因)
2、测试时打印url确保完全一致

官方说明:

invalid signature签名错误。
建议按如下顺序检查:
(1)确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
(2)确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
(3)确认url是页面完整的url(请在当前页面alert(location.href.split("#")[0])确认),包括"http(s)://"部分,以及"?"后面的GET参数部分,但不包括"#"hash后面的部分。
(4)确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
(5)确保一定缓存access_token和jsapi_ticket。
(6)确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去"#"hash部分的链接(可用location.href.split("#")[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38579.html

相关文章

  • 微信 jssdk 签名错误 invalid signature

    摘要:你的页面还是无法正常使用微信函数的。这样似乎就解决了微信签名失败的问题。但是,我们又遇到了另外一种情况在微信小程序里用内嵌的网页,在安卓下也报和错误。 几乎每一个开发用于微信公众号页面的工程师都遇到过微信jssdk报的各种错误,通常是permission denied,类似这样: showImg(https://segmentfault.com/img/bVbm8YB?w=320&h=...

    lei___ 评论0 收藏0
  • 微信JSSDK分享,解决config:invalid signature问题

    摘要:微信分享可以实现自己的网页在微信自定义图标,标题,还有描述,还可以分享到朋友圈,分享到微信群,分享给朋友等操作。 微信JSSDK分享可以实现自己的网页在微信自定义图标,标题,还有描述,还可以分享到朋友圈,分享到微信群,分享给朋友等操作。 showImg(https://segmentfault.com/img/bVbiGlk?w=1214&h=1079); 上图就是,左侧是分享到朋友圈...

    fsmStudy 评论0 收藏0
  • angular2 + JSSDK微信分享定制总结

    摘要:本篇文章就记录我的做微信分享信息定制的过程和踩坑总结。但是,这就要求在每个组件中都加微信分享代码,会导致维护困难。 在微信浏览器内打开任何网页,若不配置分享接口,微信会默认使用如下信息作为分享信息: 默认标题:HTML的title 默认连接:当前页面的地址,即location.href 默认图片:会取当前页面body内最前面的一张符合条件的图片(尺寸必须大于300px × 300px...

    qylost 评论0 收藏0
  • 微信二次分享报错,invalid signature

    摘要:基于微信公众号开发的页面使用接口,由用户分享给用户,用户再次分享这个页面时,不能成功分享。 基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.com/test.h...

    awesome23 评论0 收藏0
  • 微信二次分享报错,invalid signature

    摘要:基于微信公众号开发的页面使用接口,由用户分享给用户,用户再次分享这个页面时,不能成功分享。 基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.com/test.h...

    e10101 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<