access_token没过期,但已失效的问题{errcode:40001}-java-微信

access_token失效40001微信公众号invalid or not lates 更多

做微信开发偶尔会有好多用户的信息获取不到,提示:{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [C7NhMA0380vr31!]"},意思是access_token已经失效,但access_token的有效期是7200S也就是两个小时,但我的token失效的时候才30分钟左右,其他地方也没有单独调用获取token的接口,让人匪夷所思。

而且发现用同一个token再次请求,就成功了,虽然没找到什么问题所致,大部分答案说是微信的bug,但也不是肯定。只能迂回用自己的方案来解决了。

1.首先服务器是有定时任务的,每一小时更新一次access_token

2.有了第一步之后理论上不会出现40001错误了,为了防止此问题出现当请求返回40001后重复请求3次

3.请求3次后,如果还有此问题出现(机率已经很小了,不过为了保证准确性),把此信息存入到一个记录token失效错误的日志表中,定时的去处理这个表中的数据。

亲测10万用户,在经过第二步之后半月内只有几十条token失效的日志,在定时处理后,再没出现过问题。

之前一直没找到好的解决方案,于是自己写的。如果有更好方案,欢迎分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章