python django 实名认证 调用第三方平台

# 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")

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值