收藏
回答

access_token 失效问题。

目前做法是通过中控调微信拿到access_token,然后缓存到redis,有效期为1800秒。

其他地方调用都会从这里先获取缓存的值,如果缓存不存在再去调微信生成新的并缓存起来。

下面是使用这个access_token调用其他接口的日志。false的报错都是

{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hints: [LhndpY3MRa-tm4k.A!]"}

 

如果一直失效 ,或者在过渡期5分钟内 就能确定是被刷掉了。但是现在明显是时而可以时而不行。

发工单也没人回。。

注意:不是说拼命刷access token 而是已经缓存起来 有效期内 没有去刷新的情况下,使用这个token去生成二维码等等返回的。

最后一次编辑于  2020-07-28
回答关注问题邀请回答
收藏

2 个回答

  • 听风人
    听风人
    2020-07-27

    业务里面需要判断是否40001,然后再去刷新缓存,有一个重试机制

    2020-07-27
    有用
    回复 4
    • Taxz
      Taxz
      2020-07-28
      重试的话 一天限量会不会很快就没了? 我统计了一下  最快重新生成6分钟就已经失效了。
      2020-07-28
      回复
    • 听风人
      听风人
      2020-07-28回复Taxz
      不会,一般重试发生在7200s 失效那个时候,一旦有一个请求失败了,就会有人去重新获取,这个地方做个并发操作,避免多个人同时获取,就可以了
      2020-07-28
      回复
    • Taxz
      Taxz
      2020-08-03回复听风人
      经过检查 应该就是微信api有bug导致的
      2020-08-03
      回复
    • 一个胖子คิดถึง
      一个胖子คิดถึง
      2020-08-04回复Taxz
      赞同~这个已经困惑好久了,官方也没回复
      2020-08-04
      回复
  • 圣殿骑士
    圣殿骑士
    2020-07-27

    不要这样做。。。缓存起来。。。

    为什么一直要去刷access_token呢?

    你需要经常更新啥?

    2020-07-27
    有用
    回复 3
    • Taxz
      Taxz
      2020-07-28
      现在就是缓存起来的,不是一直刷。上面调用的是生成二维码这种使用access token的地方。
      2020-07-28
      回复
    • 圣殿骑士
      圣殿骑士
      2020-07-28回复Taxz
      那也不应该啊,难道除了你还有其他人也需要去请求? 7200s缓存,一般统一一台服务器去拿。。。一天完全够啊
      2020-07-28
      回复
    • Taxz
      Taxz
      2020-07-29回复圣殿骑士
      不是应不应该。。是微信有bug。发工单之后 现在好了。你说的那个其他人请求的情况不符合这个的。如果是token被刷掉 不可能过了一个小时这个token还能正常请求微信
      2020-07-29
      回复
登录 后发表内容
问题标签