微信公众号要求用户对所有的请求都要携带AccessToken,wechatpy对于微信AccessToken会自动内部处理,一般单线程的情况下开发者不需要手动去操作,但是多线程情况下,必须使用持久化存储。
wechatpy下,开发者一般不需要访问AccessToken,如果需要,可以通过wechat_client.access_token获取到。也就是说,只要我们把wechat_client对象存储在缓存数据库里,每次请求微信接口的时候,再带上它,就可以了。
wechatpy支持多种AccessToken持久化存储。本框架主要用redis来存储。
在Application/Wechat/views目录下,创建一个名为Utils.py的文件,内容如下:
from redis import Redis from wechatpy.session.redisstorage import RedisStorage from GeneralTools import Constents from wechatpy.client import WeChatClient def get_WeChatClient(): """ 获取WeChatClient对象 :return:WeChatClient对象 """ redis_client = Redis.from_url(Constents.WECHATPY_ACCESS_TOKEN_CACHE) session_interface = RedisStorage( redis_client, prefix="wechatpy" ) return WeChatClient( Constents.WECHAT_APPID, Constents.WECHAT_APPSECRET, session=session_interface )