微信分享出现的常见bug
分享失败的时候,首先开启debug模式
常见的错误是invalid signatrue
//在文档中的 附录5-常见错误及解决方法里的第二项
2.invalid signature签名错误。建议按如下顺序检查:
- 确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
- 确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
- 确认url是页面完整的url(请在当前页面alert(location.href.split(‘#’)[0])确认),包括’http(s)://’部分,以及’?’后面的GET参数部分,但不包括’#’hash后面的部分。
- 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
- 确保一定缓存access_token和jsapi_ticket。
- 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去’#’hash部分的链接(可用location.href.split(‘#’)[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。
通俗讲 ,一般有以下三种
- 1.传给后台的url问题:var url = encodeURIComponent(location.href.split(‘#’)[0]);
- 2.config中nonceStr字段的写法
- 3.appid的错误,必须跟你的js授权地址对应的公众号appid
新申请的微信公众号,又有了一个IP白名单的错误
{“errcode”:40164,”errmsg”:”invalid ip 123.121.1.56, not in whitelist hint: [vQhyVA07742974]”}
解读:错误代码:40164,错误信息:无效ip,不在白名单中于是开始往IP白名单这个方向思考,因为换了个地方,网络不同,电脑的ip地址变了。所以要再设置一下白名单网上的这一说辞都是扯淡
解决方法:
登录公众平台,开发->基本配置->IP白名单->查看->修改->添加ip地址
这个ip地址,不是来访问你服务器的IP地址,而是你服务器的IP地址!!!