提交修改

This commit is contained in:
quyixiao 2025-04-16 20:33:23 +08:00
parent 2b54bc8222
commit 13fc3585de
3 changed files with 70 additions and 28 deletions

View File

@ -108,7 +108,6 @@ public class TIdCardOCRVerificationHandle extends TencentBaseHandle<TTIdCardOCRV
|| "-6".equals(result)
|| "-7".equals(result)
) {
enable = 0 ;
}
@ -119,6 +118,7 @@ public class TIdCardOCRVerificationHandle extends TencentBaseHandle<TTIdCardOCRV
apiIdCardEntity.setApiResult(JSON.toJSONString(resp));
apiIdCardEntity.setEnableStatus(enable);
apiIdCardEntity.setUseCount(1L);
apiIdCardDao.insertApiIdCard(apiIdCardEntity);
return resp;

View File

@ -33,7 +33,6 @@ import org.springframework.stereotype.Component;
public class ThirdTIdCardVerificationHandle extends TencentBaseHandle<TTIdCardOCRVerificationRequest, ThirdIdCardResp> {
@Autowired
private ApiIdCardDao apiIdCardDao;
@ -88,21 +87,21 @@ public class ThirdTIdCardVerificationHandle extends TencentBaseHandle<TTIdCardOC
return resp;
}
}
ThirdIdCardResp thirdIdCardResp = ThirdUtils.getIdCard(ap.getIdCard(), ap.getName());
if(thirdIdCardResp ==null){
resp = ThirdUtils.getIdCard(ap.getIdCard(), ap.getName());
if (resp == null) {
return null;
}
int enable = 1 ;
if(!"0".equals(thirdIdCardResp.getErrorCode()+"")){
enable = 0 ;
int enable = 1;
if (!"0".equals(resp.getErrorCode() + "")) {
enable = 0;
}
ApiIdCardEntity apiIdCardEntity = new ApiIdCardEntity();
apiIdCardEntity.setIdCard(ap.getIdCard());
apiIdCardEntity.setRealName(ap.getName());
apiIdCardEntity.setChannel(ApiConstants.tencent);
apiIdCardEntity.setChannel(ApiConstants.third);
apiIdCardEntity.setApiResult(JSON.toJSONString(resp));
apiIdCardEntity.setEnableStatus(enable);
apiIdCardEntity.setUseCount(1L);

View File

@ -10,7 +10,9 @@ import com.heyu.api.data.utils.R;
import com.heyu.api.request.certificate.ApiIdentityCardSecondRequest;
import com.heyu.api.resp.card.IdCardOCRVerificationResp;
import com.heyu.api.tencent.handle.TIdCardOCRVerificationHandle;
import com.heyu.api.tencent.handle.ThirdTIdCardVerificationHandle;
import com.heyu.api.tencent.request.TTIdCardOCRVerificationRequest;
import com.heyu.api.tencent.resp.ThirdIdCardResp;
import com.tencentcloudapi.faceid.v20180301.models.IdCardOCRVerificationResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -33,25 +35,62 @@ import org.springframework.web.bind.annotation.RestController;
*
*
*/
@Slf4j
@RestController
@RequestMapping("/idcard")
public class IdCardOCRVerificationController {
public final static String SUCCESS_MSG = "姓名和身份证号一致";
public final static String FAILED_MSG = "姓名和身份证号不一致";
public final static String SUCCESS_CODE = "1";
public final static String FAILED_CODE = "0";
@Autowired
private TIdCardOCRVerificationHandle tIdCardOCRVerificationHandle;
@Autowired
private ThirdTIdCardVerificationHandle thirdTIdCardVerificationHandle;
// http://localhost:8888/idcard/verification?idCardNumber=430529199209255030&realName=瞿贻晓
// https://api.1024api.com/api-interface/bank/card/2/verify?bankCardNumber=6214855713516769&realName=瞿贻晓
@EbAuthentication(tencent = ApiConstants.TENCENT_AUTH)
@RequestMapping("/verification")
public R certification(ApiIdentityCardSecondRequest apiIdentityCardRequest) {
// 构建基本的返回参数
IdCardOCRVerificationResp idCardOCRVerificationResp = new IdCardOCRVerificationResp();
idCardOCRVerificationResp.setIdCardNumber(IDCardValidatorUtils.maskIdCard(apiIdentityCardRequest.getIdCardNumber()));
idCardOCRVerificationResp.setRealName(IDCardValidatorUtils.maskRealName(apiIdentityCardRequest.getRealName()));
// 封装请求参数
TTIdCardOCRVerificationRequest ttIdCardOCRVerificationRequest = new TTIdCardOCRVerificationRequest();
ttIdCardOCRVerificationRequest.setIdCard(apiIdentityCardRequest.getIdCardNumber());
ttIdCardOCRVerificationRequest.setName(apiIdentityCardRequest.getRealName());
// 请求腾讯云的第三方平台
ApiR<ThirdIdCardResp> 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<IdCardOCRVerificationResponse> 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());
}
}