# 3.22 实名认证 第三方平台 寻程数据
@is_json
def name_authentication(request):
try:
resp = {
"status": "failed",
"code": 400,
}
if request.method == "POST":
uid = request_data(request, 'uid')
assert uid, '参数必传 uid'
name = request_data(request, 'name')
assert name, '参数必传 name'
idcard_num = request_data(request, 'idcard_num')
assert idcard_num, '参数必传 idcard_num'
idcard_back = request_data(request, 'idcard_back')
assert idcard_back, '参数必传 idcard_back'
idcard_front = request_data(request, 'idcard_front')
assert idcard_front, '参数必传 idcard_front'
if not all([uid, hr_name, idcard_num, idcard_back, idcard_front]):
resp["msg"] = "参数不全"
return JsonResponse(resp, content_type="application/vnd.zlh+json")
hr_infos = Zlh_hr_info.objects.filter(uid=uid)
if hr_infos.exists():
hr_info = hr_infos.first()
if not all([hr_name, idcard_num]):
resp["msg"] = "参数不全"
return JsonResponse(resp, content_type="application/vnd.zlh+json")
dict = {}
dict['key'] = ''
dict['cardNo'] = idcard_num
dict['realName'] = hr_name
dict['information'] = 1
data = urllib.parse.urlencode(dict)
url = "http://v.apistore.cn/api/a1" + "?" + data
request = urllib.request.Request(url) # urllib.request --> urllib2 python3 和p ython2 urllib 区别
result = urllib.request.urlopen(request)
jsonarr = json.loads(result.read().decode('utf-8'))
print(jsonarr)
if jsonarr["error_code"] != u"0": # 验证状态 0认证一致 1不一致
return JsonResponse(
{
"status": "failed",
"code": 400,
"idcard_num": idcard_num,
"name": hr_name,
"msg": "抱歉,身份证校验不一致!"
}, content_type="application/vnd.zlh+json"
)
result = jsonarr["result"]
hr_info.idcard_num = idcard_num
hr_info.idcard_front = idcard_front
hr_info.idcard_back = idcard_back
hr_info.save()
return JsonResponse(
{
"status": "success",
"code": 200,
"idcard_num": result['idcard_num'],
"name": result['name'],
"msg": "实名认证成功!"
}, content_type="application/vnd.zlh+json"
)
else:
resp["msg"] = "信息提示 - 用户不存在"
response = JsonResponse(resp, content_type="application/vnd.zlh+json")
return response
except AssertionError as e:
return JsonResponse({
"status": "failed",
"code": 400,
"msg": str(e)
}, content_type="application/vnd.zlh+json")
except Exception as e:
logger.error(e)
return JsonResponse({
"status": "failed",
"code": 400,
"emsg": str(e)
}, content_type="application/vnd.zlh+json")