...
|
...
|
@@ -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)})
|
...
|
...
|
|