public ActionResult FaceCheck(FaceRegisterRequest request) { FaceCheckResponse response = BaiduApiBll.FaceCheck(request.ImgPath, request.ImgType); if (response.result == null) { return(Json(new JsonSimpleResponse() { State = false, ErrorMsg = "检测异常" })); } var faceInfo = response.result.face_list.FirstOrDefault(); if (response.error_code == 0 && response.result.face_num == 1 && faceInfo.face_probability == 1 && faceInfo.liveness.livemapscore >= 0.8 && faceInfo.quality.blur == 0 && faceInfo.quality.completeness == 1 && faceInfo.quality.illumination > 40 && faceInfo.angle.pitch < 20 && faceInfo.angle.pitch > -20 && faceInfo.angle.roll < 20 && faceInfo.angle.roll > -20 && faceInfo.angle.yaw < 20 && faceInfo.angle.yaw > -20 && faceInfo.quality.occlusion.left_eye <= 0.6 && faceInfo.quality.occlusion.right_eye <= 0.6 && faceInfo.quality.occlusion.nose <= 0.7 && faceInfo.quality.occlusion.mouth <= 0.7 && faceInfo.quality.occlusion.left_cheek <= 0.8 && faceInfo.quality.occlusion.rigth_cheek <= 0.8 && faceInfo.quality.occlusion.chin <= 0.6) { return(Json(new JsonSimpleResponse() { State = true, ErrorMsg = "检测通过" })); } return(Json(new JsonSimpleResponse() { State = false, ErrorMsg = "检测异常" })); }
public ActionResult UpdateFace(FaceRegisterRequest request) { StudentInfoBll studentInfoBll = new StudentInfoBll(); var response = BaiduApiBll.FaceUpdate(request.ImgPath, request.ImgType, GetCurrentUser().StudentId.ToString(), request.UserInfo); if (response.error_code == 0) { var result = studentInfoBll.UpdatePassportKey(GetCurrentUser().StudentId, response.result.face_token); return(Json(new JsonResponse <FaceRecognitionResponse>() { Data = response, ErrorCode = 1, ErrorMsg = "操作成功" })); } return(Json(new JsonResponse <FaceRecognitionResponse>() { Data = response, ErrorCode = 0, ErrorMsg = "操作失败" })); }
public ActionResult BindFace(FaceRegisterRequest request) { FaceRecognitionResponse response = BaiduApiBll.FaceRegister(request.ImgPath, request.ImgType, GetCurrentUser().StudentId.ToString(), request.UserInfo); if (response.error_code == 0) { StudentInfoBll studentInfoBll = new StudentInfoBll(); studentInfoBll.AddStudentPassport(GetCurrentUser().StudentId, StudentAccountSourceEnum.人脸识别, response.result.face_token, ""); return(Json(new JsonResponse <FaceRecognitionResponse>() { Data = response, ErrorCode = 1, ErrorMsg = "绑定成功" })); } return(Json(new JsonResponse <FaceRecognitionResponse>() { Data = response, ErrorCode = 0, ErrorMsg = "绑定失败" })); }
public ActionResult FaceLogin(FaceRegisterRequest request) { FaceRecognitionResponse response = BaiduApiBll.FaceLogin(request.ImgPath, request.ImgType); //状态码不为0或者识别得分小于80,验证失败 if (response.error_code > 0 || response.result.user_list.FirstOrDefault().score < 80) { var errorCode = -1; //状态码为18,QPS超限额 if (response.error_code == 18) { errorCode = -2; } return(Json(new JsonResponse <FaceRecognitionResponse>() { State = false, ErrorCode = errorCode, Data = response, ErrorMsg = "登录失败,请稍后再试" })); } StudentInfoBll studentInfoBll = new StudentInfoBll(); var studentPassport = studentInfoBll.GetStudentPassport(response.result.user_list.FirstOrDefault().user_id._ToInt32(), StudentAccountSourceEnum.人脸识别); if (studentPassport != null) { var sumStudent = studentInfoBll.GetSumStudentTip(studentPassport.Bsp_StudentId); LoginInfo info = sumStudent.ConvertTo <LoginInfo>(); LoginStudent.Info = JsonConvert.SerializeObject(info); return(Json(new JsonSimpleResponse() { State = true, ErrorCode = 1, ErrorMsg = "登录成功" })); } return(Json(new JsonSimpleResponse() { State = false, ErrorCode = -1, ErrorMsg = "登录失败" })); }