发布于 1970-01-01 08:00
  • 8 个回答
    • 加上判断,失效时重新获取Access token
      可能有次数限制?

      2022-12-01 14:22 回答
    • 7200秒有效你就应该获取了之后继续使用而不是120秒之后就再次获取,access_token每天获取次数是有限的。

      access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

      2022-12-01 14:22 回答
    • 楼主我能问你一个问题么 关于授权的

      2022-12-01 14:22 回答
    • 题主你好,我遇到了与你类似的问题,在较短时间内,多次用access_token去调用微信其他接口总是会出现
      {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [QZ.Jja0059ent1]"}
      我是用定时器每一个小时内获取授权token,然后存到memcached缓存中。理论上讲,这一个小时内这个token一直是有效的,但结果是,每次频繁利用token调用其他的接口时,总会报token失效。
      排除appsecret错误的问题,因为如果appsecret错误,所有调用结果都是失败,而不会只出现在利用token频繁调用其他接口的情况下。
      这个问题那么长时间了,题主应该解决了吧?希望题主赐教。

      2022-12-01 14:22 回答
    • 我现在也是遇到类似的问题 ,我设置access_token有效期是3600s ,我也是for循环 , 在for循环里面发送模板消息。,理论上access_token的有效期是7200s , 那么我设置3600s 应该可以的 过期之后我会重新的拉取!!

      2022-12-01 14:22 回答
    • 是啊,不知道为什么。我用了一个定时器没7200s去获取AccessToken,但是每次拿回来的AccessToken,发送支付客服消息,过一会儿就失效了。

      测试的时候,发现即使是立刻刷新拿回来的token会抱42001的错误。不知道为什么,求赐教啊

      2022-12-01 14:22 回答
    • 除了时间判断和集中存储的问题,更重要的是在使用时判断返回结果响应是否要更新AccessToken,微信服务器群集在处理AccessToken的时候本身就不同步。就以获取微信服务器IP地址为例,当你主动将AccessToken失效后,调用这个接口是一下成一下失败的,并且当你更新AccessToken后马上调用也会出现时好时坏的问题。折腾半天还是用了比较恶心的方式来处理的。

      var userInfo = Invoke((token) => { return UserApi.Info(token, openid); });

      在Invoke函数里进行最多3次重试的循环调用,如果发现失效则立即更新。

      public static T Invoke<T>(Func<string, T> invokeFunc)
      2022-12-01 14:22 回答
    • 这个微信开发论坛管理员已经回答过了

      所以可以采取的方案是去带token请求一个另外的没有次数限制的接口,如果token失效,重新生成TOKEN,如果没有失效,继续之前的逻辑

      2022-12-01 14:22 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有