# Access_token 使用说明
Access Token 是微信各应用的接口调用票据。不同的应用类型的 Access Token 是互相隔离的,票据仅支持调用应用类型的接口。
你可以通过阅读各服务端 API 文档,从目录「基础接口」中,找到 Access Token 的相关接口,目前有两个接口可以获取:
- 获取接口调用凭据:getAccessToken
- 获取稳定版接口调用凭据:getStableAccessToken
两者都可以正常获取,推荐使用稳定版接口。
# 注意事项
- access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;
- 目前access_token的有效期通过返回的expires_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡;
- access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。
- access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。
- access_token的存储至少要保留512个字符空间。
# 方案介绍
这里提供一个较为简单的 access_token 存储和使用方案:
- 中控服务器定时(建议1小时)调用微信api,刷新access_token,将新的access_token 存入存储;
- 其他工作服务器每次调用微信api时从mysql(或其他存储)获取access_token,并可在内存缓存一段时间(建议1分钟);