收藏
回答

第三方平台 获取公众号access_token 后, 请求公众号接口

问题模块
开发者工具

你好,微信开发团队和开发的童鞋们~~


第三方平台 获取公众号access_token 后, 请求公众号接口


我首先调用生成token的接口,生成一个access_token。调取公众号的一些接口是 有时候会成功,有时候会返回40001错误


例如,通过同一个access_token获取用户信息,并发进行接口调用。有的获取成功,有的返回错误,失败的原因是:{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [0548vr44!]"}


如果是access_token无效,那应该全部都无效才对。


是我哪里搞错了吗?



接口地址:

https://api.weixin.qq.com/cgi-bin/user/info?access_token=AEsImxnAjQc5ktCuAqBHkuoLmEsCjykj5sm4KeW7dfNmptQkO9MF9m0cseD2U0GLNPWsnUZVBo44yhwSnIhb1ahMair4B7Ai8IY2fgDhv6nYBgiqhm3HO0O0jz0oM_DfHKPfAKDCFK&openid=o5kgtw5LUXEotarR0J5Y9jjYnCNs&lang=zh_CN


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

4 个回答

  • King
    King
    2018-07-27

    我现在遇到这样一个问题account_token 7200s都没有到只过了900多s 就提示40001了,不知道这个是不是小程序的account_token不稳定的原因?

    2018-07-27
    赞同
    回复 1
    • Dr.Dong
      Dr.Dong
      07-25
      查看下 是不是有什么地方刷新了token 导致原有的token失效了
      07-25
      回复
  • Dr.Dong
    Dr.Dong
    2017-11-28

    原来是acess_token 已过期  但是旧access_token 还能使用 但不稳定

    2017-11-28
    赞同
    回复
  • Dr.Dong
    Dr.Dong
    2017-11-28

    独立公众号的access_token 都是独立存于各自的缓存中的  100分钟过期   使用同一个access_token  几秒内多次请求,同一个链接   有时返回正确,有时返回40001错误

    2017-11-28
    赞同
    回复
  • 韬々
    韬々
    2017-11-28

    你好,从你的描述来看问题应该出在access_token不稳定上。由于每次请求新的access_token会导致旧token失效的原因,请确保后台服务中access_token采用了中控服务器统一刷新的机制。具体参考


    文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html#模版消息管理 - 获取access_token 一节

    1. 获取 access_token

    access_token 是全局唯一接口调用凭据,开发者调用各接口时都需使用 access_token,请妥善保存。access_token 的存储至少要保留512个字符空间。access_token 的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。

    公众平台的 API 调用所需的 access_token 的使用及生成方式说明:

    1. 为了保密 appsecrect,第三方需要一个 access_token 获取和刷新的中控服务器。而其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则会造成 access_token 覆盖而影响业务;

    2. 目前 access_token 的有效期通过返回的 expires_in 来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新 access_token。在刷新过程中,中控服务器对外输出的依然是老 access_token,此时公众平台后台会保证在刷新短时间内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;

    3. access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在 API 调用获知 access_token 已超时的情况下,可以触发 access_token 的刷新流程。

    开发者可以使用 AppID 和 AppSecret 调用本接口来获取 access_token。AppID 和 AppSecret 可登录微信公众平台官网-设置-开发设置中获得(需要已经绑定成为开发者,且帐号没有异常状态)。AppSecret 生成后请自行保存,因为在公众平台每次生成查看都会导致 AppSecret 被重置。注意调用所有微信接口时均需使用 https 协议。如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新 access_token,那么就可能会产生冲突,导致服务不稳定。


    2017-11-28
    赞同
    回复