微信公众号后台开发需要缓存的凭据

根据《接口频率限制说明 - 微信公众平台开发者文档》,很多接口(API)都有调用次数限制,凭据(Token)使用过程中需注意超时、刷新。对这些凭据进行缓存一方面可以避免超出限制被平台拒绝服务,减少微信公众号接口调用次数也能够减少服务响应时间。

全局接口调用凭据

根据《获取access token - 微信公众平台开发者文档》中的描述,全局接口调用凭据有以下特性:

  • 每日调用次数限制

    新注册帐号每日 2000 次,认证服务号每日 100000 次。

  • 过期时间限制

    当前为 7200 秒

  • 过期前需重新获取(刷新)

    旧凭据会失效,刷新过程中公众平台会保证新、旧凭据短时间内同时可用。

后台服务往往有多个,而且会多机器、多进程方式部署,所以必须全局缓存该凭据,如使用 RedisMemcached 来缓存;如果每一处业务代码发现凭据过期时擅自去重新获取凭据,高并发情况下可能瞬间出现大量的刷新操作,导致超出每日的接口调用次数限制,最好由一个中控服务负责凭据的管理,其它业务服务需要凭据时访问中控服务,由中控服务来负责凭据的获取、刷新。

微信网页授权凭据

根据《 微信公众平台-微信网页授权 》中的描述,网页授权接口调用凭据有以下特性:

  • 每日调用次数限制

  • 过期时间限制

    当前为 7200 秒

  • 过期前需重新刷新

网页授权凭据是通过用户授权码( code )换取的,用户授权码是一次性的,与用户的后继会话交互要依赖该授权凭据(Token)。后台服务往往有多个,而且会多机器、多进程方式部署,所以必须全局缓存该凭据,并在过期前刷新该凭据。

微信JS接口的临时票据

根据《S-SDK使用权限签名算法-获取jsapi_ticket 》中的描述,微信JS接口的临时票据有以下特性:

  • 每日调用次数限制

    认证服务号每日 1000000 次

  • 过期时间限制

    当前为 7200 秒

  • 过期前需重新获取(刷新)

后台服务往往有多个,而且会多机器、多进程方式部署,所以必须全局缓存该凭据,并在过期前重新获取。