(已解决)access_token没过期,但已失效的问题{errcode:40001} 微信

做微信开发偶尔会有好多用户的信息获取不到,提示:{"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失效的日志,在定时处理后,再没出现过问题。

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

转载于:https://my.oschina.net/u/218676/blog/2054452

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值