From 13fc3585de1bfa8d640a0f77de970e0fd9ed9e0c Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 16 Apr 2025 20:33:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handle/TIdCardOCRVerificationHandle.java | 2 +- .../ThirdTIdCardVerificationHandle.java | 13 ++- .../IdCardOCRVerificationController.java | 83 ++++++++++++++----- 3 files changed, 70 insertions(+), 28 deletions(-) diff --git a/api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java b/api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java index 486bc03..e57ae8f 100644 --- a/api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java +++ b/api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java @@ -108,7 +108,6 @@ public class TIdCardOCRVerificationHandle extends TencentBaseHandle { - @Autowired private ApiIdCardDao apiIdCardDao; @@ -88,21 +87,21 @@ public class ThirdTIdCardVerificationHandle extends TencentBaseHandle thirdIdCardRespApiR = thirdTIdCardVerificationHandle.handle(ttIdCardOCRVerificationRequest); + if (thirdIdCardRespApiR.isSuccess()) { + ThirdIdCardResp thirdIdCardResp = thirdIdCardRespApiR.getData(); + + if (thirdIdCardResp.getResult() != null) { + ThirdIdCardResp.ResultDTO resultDTO = thirdIdCardResp.getResult(); + if (resultDTO.getIsok()) { + // 封装请求成功的返回参数 + fillBaseIdCard(apiIdentityCardRequest.getIdCardNumber(), idCardOCRVerificationResp); + idCardOCRVerificationResp.setDesc(SUCCESS_MSG); + idCardOCRVerificationResp.setCode(SUCCESS_CODE); + } else { + idCardOCRVerificationResp.setCode(FAILED_CODE); //其他情况 + idCardOCRVerificationResp.setDesc(thirdIdCardResp.getReason()); //其他情况 + } + return R.ok().setData(idCardOCRVerificationResp); + } + } + ApiR apiR = tIdCardOCRVerificationHandle.handle(ttIdCardOCRVerificationRequest); if (apiR.isSuccess()) { IdCardOCRVerificationResponse idCardOCRVerificationResponse = apiR.getData(); @@ -71,37 +110,28 @@ public class IdCardOCRVerificationController { * 示例值:0 */ if ("0".equals(idCardOCRVerificationResponse.getResult())) { - idCardOCRVerificationResp.setCode("1"); // 姓名和身份证号一致。 - IdCardAddressModel idCardAddressModel = IDCardValidatorUtils.getAddrInfo(apiIdentityCardRequest.getIdCardNumber()); + // 封装请求成功的返回参数 + fillBaseIdCard(apiIdentityCardRequest.getIdCardNumber(),idCardOCRVerificationResp); + idCardOCRVerificationResp.setDesc(SUCCESS_MSG); + idCardOCRVerificationResp.setCode(SUCCESS_CODE); // 姓名和身份证号一致。 - idCardOCRVerificationResp.setCountry(idCardAddressModel.getCountry()); - idCardOCRVerificationResp.setProvince(idCardAddressModel.getProvince()); - idCardOCRVerificationResp.setCity(idCardAddressModel.getCity()); - idCardOCRVerificationResp.setArea(idCardAddressModel.getCounty()); - idCardOCRVerificationResp.setDetailAddress(idCardAddressModel.getProvince() + idCardAddressModel.getCity() + idCardAddressModel.getCounty()); - - idCardOCRVerificationResp.setBirthday(idCardAddressModel.getBirthday()); - idCardOCRVerificationResp.setSex(idCardAddressModel.getSex()); - idCardOCRVerificationResp.setSexChar(idCardAddressModel.getSexChar()); - - idCardOCRVerificationResp.setDesc("姓名和身份证号一致"); } else if ("-1".equals(idCardOCRVerificationResponse.getResult())) { - idCardOCRVerificationResp.setCode("0"); // 姓名和身份证号不一致。 - idCardOCRVerificationResp.setDesc("姓名和身份证号不一致"); + // 姓名和身份证号不一致, 则返回失败 + idCardOCRVerificationResp.setCode(FAILED_CODE); + idCardOCRVerificationResp.setDesc(FAILED_MSG); + } else if ("-4".equals(idCardOCRVerificationResponse.getResult()) // -4: 证件库服务异常。 || "-6".equals(idCardOCRVerificationResponse.getResult()) // -6: 权威比对系统升级中,请稍后再试。 || "-7".equals(idCardOCRVerificationResponse.getResult()) // -7: 认证次数超过当日限制。 ) { return R.error("服务异常,不会收费"); } else { - idCardOCRVerificationResp.setCode("0"); //其他情况 + //其他失败情况 + idCardOCRVerificationResp.setCode(FAILED_CODE); idCardOCRVerificationResp.setDesc(idCardOCRVerificationResponse.getDescription()); //其他情况 } - idCardOCRVerificationResp.setIdCardNumber(IDCardValidatorUtils.maskIdCard(apiIdentityCardRequest.getIdCardNumber())); - idCardOCRVerificationResp.setRealName(IDCardValidatorUtils.maskRealName(apiIdentityCardRequest.getRealName())); - return R.ok().setData(idCardOCRVerificationResp); } @@ -109,4 +139,17 @@ public class IdCardOCRVerificationController { return R.error(apiR.getErrorMsg()); } + public void fillBaseIdCard(String idCardNumber,IdCardOCRVerificationResp idCardOCRVerificationResp) { + IdCardAddressModel idCardAddressModel = IDCardValidatorUtils.getAddrInfo(idCardNumber); + // 封装地址信息 + idCardOCRVerificationResp.setCountry(idCardAddressModel.getCountry()); + idCardOCRVerificationResp.setProvince(idCardAddressModel.getProvince()); + idCardOCRVerificationResp.setCity(idCardAddressModel.getCity()); + idCardOCRVerificationResp.setArea(idCardAddressModel.getCounty()); + idCardOCRVerificationResp.setDetailAddress(idCardAddressModel.getProvince() + idCardAddressModel.getCity() + idCardAddressModel.getCounty()); + + idCardOCRVerificationResp.setBirthday(idCardAddressModel.getBirthday()); + idCardOCRVerificationResp.setSex(idCardAddressModel.getSex()); + idCardOCRVerificationResp.setSexChar(idCardAddressModel.getSexChar()); + } } \ No newline at end of file