def klx_register(role, uid, name, password=None, subject=None):
'''
:param role: 1???? 2???
:param uid: models.User.id
:param name: Student Name or Teacher Name
:param password: ??123456
:param subject: ?role??????????
:return: kuailexue username
'''
klx_url = settings.KUAILEXUE_SERVER + '/third-partner/register'
# _logger.debug(klx_url)
params = {
'role': role,
'uid': uid,
'name': name,
}
if password is not None:
params['password'] = password
if subject is not None:
params['subject'] = subject
params = klx_build_params(params, True)
if settings.TESTING:
return klx_verify_sign(params) and '1' or '0'
# _logger.debug(params)
try:
resp = requests.post(klx_url, data=params, timeout=10)
except Exception as err:
_logger.error('cannot reach kuailexue server')
_logger.exception(err)
return None
if resp.status_code != 200:
_logger.error('cannot reach kuailexue server, http_status is %s' % (resp.status_code))
# raise KuailexueServerError('cannot reach kuailexue server, http_status is %s' % (resp.status_code))
return None
if _get_is_cold_testing():
_console.warning(klx_url+'?'+urllib.parse.urlencode(params))
ret_json = json.loads(resp.content.decode('utf-8'))
if _get_is_cold_testing():
_console.info(ret_json)
if ret_json.get('data') is not None: # code == 0, ??????code != 0
ret_data = ret_json.get('data')
return ret_data.get('username') # (????)??????? KUAILEXUE_PARTNER+uid+'_'+${YYYY}
else:
req_url = klx_url+'?'+urllib.parse.urlencode(params)
_logger.error('kuailexue reponse data error, CODE: %s, MSG: %s. (URL=%s)' % (ret_json.get('code'), ret_json.get('message'), req_url))
# raise KuailexueDataError('get kuailexue wrong data, CODE: %s, MSG: %s' % (ret_json.get('code'), ret_json.get('message')))
return None
评论列表
文章目录