作者 wanweibin

update work wechat

@@ -32,10 +32,10 @@ class WxPushHelper: @@ -32,10 +32,10 @@ class WxPushHelper:
32 self.api = CorpApi(Conf['CORP_ID'], Conf['APP_SECRET']) 32 self.api = CorpApi(Conf['CORP_ID'], Conf['APP_SECRET'])
33 33
34 def get_corp_user_id_by_code(self, code): 34 def get_corp_user_id_by_code(self, code):
35 - return self.api.httpCall(CORP_API_TYPE['GET_USER_INFO_BY_CODE'], code) 35 + return self.api.httpCall(CORP_API_TYPE['GET_USER_INFO_BY_CODE'], {"CODE": code})
36 36
37 def get_user_info_by_corp_user_id(self, corp_user_id): 37 def get_user_info_by_corp_user_id(self, corp_user_id):
38 - return self.api.httpCall(CORP_API_TYPE['USER_GET'], corp_user_id) 38 + return self.api.httpCall(CORP_API_TYPE['USER_GET'], {'userid': corp_user_id})
39 39
40 def push_text(self, user_wx_id, content): 40 def push_text(self, user_wx_id, content):
41 data = { 41 data = {
@@ -75,7 +75,7 @@ class WxUserlogin(APIView): @@ -75,7 +75,7 @@ class WxUserlogin(APIView):
75 def _get_user_info(code): 75 def _get_user_info(code):
76 client = WxPushHelper() 76 client = WxPushHelper()
77 corp_user = client.get_corp_user_id_by_code(code) 77 corp_user = client.get_corp_user_id_by_code(code)
78 - if "errcode" not in corp_user and "UserId" in corp_user: 78 + if "errcode" in corp_user and corp_user['errcode'] == 0 and "UserId" in corp_user:
79 return client.get_user_info_by_corp_user_id(corp_user['UserId']) 79 return client.get_user_info_by_corp_user_id(corp_user['UserId'])
80 else: 80 else:
81 raise RuntimeError(u"获取企业微信用户信息错误") 81 raise RuntimeError(u"获取企业微信用户信息错误")
@@ -85,11 +85,19 @@ class WxUserlogin(APIView): @@ -85,11 +85,19 @@ class WxUserlogin(APIView):
85 if not code: 85 if not code:
86 raise PermissionDenied 86 raise PermissionDenied
87 else: 87 else:
  88 + # um = UserManager()
88 user = User.objects.filter(wx_token=code).first() 89 user = User.objects.filter(wx_token=code).first()
89 if not user: 90 if not user:
90 info = self._get_user_info(code) 91 info = self._get_user_info(code)
91 - user = UserManager.create_user(  
92 - info['name'], "123456", info['email'], {"wx_token": info['userid']}) 92 + print(info)
  93 + user = User.objects.create(
  94 + username=info['name'],
  95 + email=info['email'],
  96 + wx_token=info['userid'],
  97 + is_active=True
  98 + )
  99 + user.set_password("123456")
  100 + user.save()
93 # 获取token 101 # 获取token
94 token_obj = TokenObtainPairSerializer.get_token(user) 102 token_obj = TokenObtainPairSerializer.get_token(user)
95 return response({"access_token": str(token_obj.access_token)}) 103 return response({"access_token": str(token_obj.access_token)})