ymao vor 4 Jahren
Ursprung
Commit
51368ee94e
3 geänderte Dateien mit 28 neuen und 7 gelöschten Zeilen
  1. 1 2
      README.md
  2. 26 4
      authen/wxlogin/wx.py
  3. 1 1
      setup.py

+ 1 - 2
README.md

@@ -1,7 +1,6 @@
 # wxlogin
 
-微信pc和移动端登录相关工具包
+微信pc和移动端相关工具包
 =======
 # trops_wxlogin
 
->>>>>>> d61017fc1afe3cee792f73cd5165090828ab31ab

+ 26 - 4
authen/wxlogin/wx.py

@@ -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()

+ 1 - 1
setup.py

@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
 
 setup(
     name='authen.wxlogin',
-    version=0.53,
+    version=0.54,
     url='http://git.trops-global.com/authen/trops_wxlogin.git',
     license='GPL',
     author='authen',