在调用微信公众号 / 小程序相关接口的时候,如果返回如下错误,则说明当前的 access_token 是错误的:

  1. {
  2. "errcode": 40001,
  3. "errmsg": "invalid credential, access_token is invalid or not latest rid: 5f38a263-3d4c3ccd-01e705f7"
  4. }

根据上面的字面提示很容易理解这个错误的原因,或者也可以查询微信官方开发文档上对于 40001 错误码的说明。

产生上面的情况,一般有下面两个原因,请逐一进行排查:

appID 对应的 secret 改变了

“api工厂” 保存的 access_token 是通过您在后台配置的 appID 和 secret 获取的,所以如果提示 access_token 错误,那么第一个步骤就是先排查后台配置的 secret 是不是在小程序的公众号后台被别人重置掉了,重置掉以后,没有在 “api工厂” 的后台配置新的 secret,导致 “api工厂” 还是在用之前老的 secret 去获取 access_token ,导致一直获取失败。

您可以前往“api工厂”后台,左侧菜单“微信设置” —> “小程序设置” / “公众号设置”,点击 “配置 Appid / secret” 按钮,弹出的窗口啥都不用修改,直接点击 “确定” 按钮。如果提示无法获取 access_token ,那么就可以确认是 secret 被修改了,填写正确的 secret 即可解决问题。

如果点击 “确定” 按钮的时候,没有提示错误信息,那么基本上可以排除是因为 secret 被重置的原因,那么请往下看另一个原因。

您可以在别的地方获取了access_token

微信的 access_token 只能在一个地方获取,假如说,你在另一个地方(除了“api工厂”以外的地方)通过appID和secret去获取了access_token,那么api工厂上的access_token会立即失效。
同理,“api工厂”这边通过appID和secret去获取了access_token,那么你在其他地方之前获取到的那个 access_token 也会立即失效。

所以请确认,您是否存在在多个地方使用 appID 和 secret 去获取 access_token 的情况,如果存在,那么,只需要保证在同一个地方获取 access_token 即可解决问题。