微信错误 "errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint

        最近的一个微信开发项目,发现用到微信接口的地方,刚开始有的地方能用,后来其他调用微信接口的地方也不能用了,通过access_token调用相关接口,返回的json错误编码是40001。如下面的格式:

{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [XXXXXXXXXXXXXX]"}

     参照微信错误编码(可查看文章https://blog.csdn.net/sinat_32366329/article/details/78868000),40001代表获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口。

        因为AppSecret之前一直使用, 所以不会错误,所以只能是access_token失效。

 

        通过查看微信官方文档中介绍access_token(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183),发现有下面一句提示:

微信错误 "errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint

        所以我此时考虑是有其他的用户通过公众号的appId重新生成过access_token,导致我这里的access_token失效。但是我登录到微信公众号后台发现生成access_token需要appId和secret,而secret生成过一次就隐藏了,别人不可能知道。

所以只有一个可能,在我的程序里面有多个地方调用了access_token接口,导致之前生成的access_token无效了。

        经过排查代码,终于发现问题所在。原来微信模块新增加了一块在线客服功能,而这块的代码中调用access_token的方法是独立的,没有使用我之前统一的access_token信息,知道问题之后,把此处的access_token信息替换成统一的access_token就OK了。