【Exception】微信JS-SDK接入报错: invalid signature 签名无效 解决思路
【Exception】微信JS-SDK接入报错: invalid signature 签名无效 解决思路
一、问题描述
1、接入微信 JS-SDK实现分享链接时,显示公司LOGO,便于品牌效应传播。
2、遇到一个问题: JS-SDK 签名一直无法通过,按照 【附录5-常见错误及解决方法】逐一排除后,且本地加密后签名和【微信 JS 接口签名校验工具】得出的结果一致的情况下,仍然报错: "invalid signature" 。
3、心情如下图:
二、问题解决
1、确认要分享的页面URL是js动态获取的,而非静态域名地址。
- 正确: var url = location.href.split('#')[0];
- 错误: var url = "www.abc.com/xx.html".split('#')[0];
2、确认当前测试服务地址和JS安全域名IP地址一致。
- 如:js 安全域名地址为 abc.com ,对应ip为: 11.22.33.44
- 本地启动 Tomcat,测试地址为: http://localhost:999/xx.html 这种情况下,获取到的signature 签名,和 【微信 JS 接口签名校验工具】得出的结果是一样的,但是会仍然报错: "invalid signature" 。
三、问题总结
1、"invalid signature" 这个问题,对于新手来说,按照【附录5-常见错误及解决方法】逐一排除后,仍未解决,会有点郁闷,怀疑人生的! 这里记录下,希望对后续遇到此类问题的朋友能有所启发。
2、不知道为啥微信不支持静态域名地址分享!!!
3、若问题描述,解决思路表述不清晰,不理解,可私信联系,交流沟通,谢谢。
参考资料: 微信JS-SDK说明文档