{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: xxx“}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bicongming/article/details/82669688

最近做微信公众号开发,其中最常用的接口就是获取access_token,感觉这个是微信众多开发坑中之大坑:其中有两个access_token,一个是网页授权时用的,一个是基础接口中用的,一定要仔细看清文档,自己开发的功能中用的是哪个,不要搞混;

网页授权那个access_token,只要授权一次,30天内不会再次使用,这里不谈了。

下面就说说这个基础接口的access_token:

  1. 几乎每个接口都需要这个全局token做验证,以保证安全性
  2. 基础接口获取access_token每天会有一个调用次数限制,应该是2000次(没做具体考证),并且会有个过期时间7200秒,过期后需要重新获取
  3. 同一个appid对应的项目(可以是一个,可以是多个),在有效期内需要使用同一个access_token,由于每次请求都会生成新的,这样会产生冲突,所以需要把这个值缓存起来,过期再去请求

    我本次开发产生这个错误{“errcode”:40001,”errmsg”:”invalid credential, access_token is invalid or not latest hint: xxx“}的原因是,我用同一个公众号,绑定了两个相同的网站,一个作为测试号用;我是将access_token分别存储到了各自项目的文件中,这样就会产生冲突,测试号去调用生成了一个access_token,存在测试项目文件中,正式项目中拿不到,所以会报这个错误;

解决:将这个存储共享出来,我的做法是将access_token存到redis缓存服务器中,这样能保证同一个appid对应的是同一个access_token

猜你喜欢

转载自blog.csdn.net/bicongming/article/details/82669688