|
@@ -134,6 +134,28 @@ class WeixinMP(object):
|
|
|
print("-" * 20, data, params)
|
|
|
return data.access_token
|
|
|
|
|
|
+ def get_user_info(self, access_token, user_id="hehe", lang="zh_CN"):
|
|
|
+ """
|
|
|
+ 获取用户基本信息。
|
|
|
+
|
|
|
+ :param user_id: 用户 ID 。 就是你收到的 `Message` 的 source
|
|
|
+ :param lang: 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
|
|
|
+ :return: 返回的 JSON 数据包
|
|
|
+ """
|
|
|
+ params = dict()
|
|
|
+ params.setdefault("openid", user_id)
|
|
|
+ params.setdefault("access_token", access_token)
|
|
|
+ params.setdefault("lang", lang)
|
|
|
+ data = self.get("/user/info", params, False)
|
|
|
+ print(data, "get_user_info")
|
|
|
+ return data
|
|
|
+
|
|
|
+ def check_token(self, access_token):
|
|
|
+ data = self.get_user_info(access_token)
|
|
|
+ if data.errcode in (40001, 42001):
|
|
|
+ return False
|
|
|
+ return True
|
|
|
+
|
|
|
@property
|
|
|
def access_token(self):
|
|
|
"""
|
|
@@ -141,15 +163,15 @@ class WeixinMP(object):
|
|
|
"""
|
|
|
if self.redis_store:
|
|
|
ac_key = "access_token:%s" % self.app_id
|
|
|
-
|
|
|
access_token = self.redis_store.get(ac_key)
|
|
|
if not access_token:
|
|
|
access_token = self.gen_token()
|
|
|
self.redis_store.setex(ac_key, 2 * 60 * 60, access_token)
|
|
|
return access_token
|
|
|
- return access_token
|
|
|
- else:
|
|
|
- return self.gen_token()
|
|
|
+ else:
|
|
|
+ if self.check_token(access_token):
|
|
|
+ return access_token
|
|
|
+ return self.gen_token()
|
|
|
|
|
|
def gen_ticket(self):
|
|
|
params = dict()
|