作者 wanweibin

update work wechat

... ... @@ -32,10 +32,10 @@ class WxPushHelper:
self.api = CorpApi(Conf['CORP_ID'], Conf['APP_SECRET'])
def get_corp_user_id_by_code(self, code):
return self.api.httpCall(CORP_API_TYPE['GET_USER_INFO_BY_CODE'], code)
return self.api.httpCall(CORP_API_TYPE['GET_USER_INFO_BY_CODE'], {"CODE": code})
def get_user_info_by_corp_user_id(self, corp_user_id):
return self.api.httpCall(CORP_API_TYPE['USER_GET'], corp_user_id)
return self.api.httpCall(CORP_API_TYPE['USER_GET'], {'userid': corp_user_id})
def push_text(self, user_wx_id, content):
data = {
... ... @@ -75,7 +75,7 @@ class WxUserlogin(APIView):
def _get_user_info(code):
client = WxPushHelper()
corp_user = client.get_corp_user_id_by_code(code)
if "errcode" not in corp_user and "UserId" in corp_user:
if "errcode" in corp_user and corp_user['errcode'] == 0 and "UserId" in corp_user:
return client.get_user_info_by_corp_user_id(corp_user['UserId'])
else:
raise RuntimeError(u"获取企业微信用户信息错误")
... ... @@ -85,11 +85,19 @@ class WxUserlogin(APIView):
if not code:
raise PermissionDenied
else:
# um = UserManager()
user = User.objects.filter(wx_token=code).first()
if not user:
info = self._get_user_info(code)
user = UserManager.create_user(
info['name'], "123456", info['email'], {"wx_token": info['userid']})
print(info)
user = User.objects.create(
username=info['name'],
email=info['email'],
wx_token=info['userid'],
is_active=True
)
user.set_password("123456")
user.save()
# 获取token
token_obj = TokenObtainPairSerializer.get_token(user)
return response({"access_token": str(token_obj.access_token)})
... ...