当前位置: 代码迷 >> 综合 >> 微信分享—invalid signatrue的问题如{errcode:40164,errmsg:invalid ip 123.121.1.56, not in whitelist hint:
  详细解决方案

微信分享—invalid signatrue的问题如{errcode:40164,errmsg:invalid ip 123.121.1.56, not in whitelist hint:

热度:30   发布时间:2023-10-12 17:33:27.0

微信分享出现的常见bug

分享失败的时候,首先开启debug模式
常见的错误是invalid signatrue

//在文档中的 附录5-常见错误及解决方法里的第二项

2.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),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

通俗讲 ,一般有以下三种

  • 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地址!!!

  相关解决方案