From f9e815ba75667baadb9fea9dddece4668f4daf64 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 14 Apr 2025 23:44:05 +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 --- .../heyu/api/data/constants/ApiConstants.java | 6 + .../heyu/api/data/dao/api/ApiIdCardDao.java | 39 ++++ .../api/data/entity/api/ApiIdCardEntity.java | 182 ++++++++++++++++++ .../data/service/api/ApiIdCardService.java | 34 ++++ .../impl/api/ApiIdCardServiceImpl.java | 68 +++++++ .../java/com/heyu/api/data/utils/ApiR.java | 29 ++- .../resources/mapper/api/ApiIdCardDao.xml | 6 + .../java/com/test/xxx/MysqlMain_insert.java | 2 +- .../heyu/api/tencent/TencentBaseHandle.java | 2 +- .../handle/TIdCardOCRVerificationHandle.java | 92 +++++++++ .../TTIdCardOCRVerificationRequest.java | 57 ++++++ .../IdCardOCRVerificationController.java | 81 ++++++++ .../resp/card/IdCardOCRVerificationResp.java | 33 ++++ 13 files changed, 613 insertions(+), 18 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dao/api/ApiIdCardDao.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/entity/api/ApiIdCardEntity.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/api/ApiIdCardService.java create mode 100644 api-mapper/src/main/java/com/heyu/api/data/service/impl/api/ApiIdCardServiceImpl.java create mode 100644 api-mapper/src/main/resources/mapper/api/ApiIdCardDao.xml create mode 100644 api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java create mode 100644 api-third/src/main/java/com/heyu/api/tencent/request/TTIdCardOCRVerificationRequest.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java index 4be20db..e749485 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java +++ b/api-mapper/src/main/java/com/heyu/api/data/constants/ApiConstants.java @@ -306,4 +306,10 @@ public class ApiConstants { public static final String t_auth = "t_auth"; + /*** + * 腾讯 + */ + public static final String tencent = "tencent"; + + } diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/api/ApiIdCardDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/api/ApiIdCardDao.java new file mode 100644 index 0000000..79f23e2 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/api/ApiIdCardDao.java @@ -0,0 +1,39 @@ +package com.heyu.api.data.dao.api; +/** +*

+* 账户表 服务类 +*

+* +* @author quyixiao +* @since 2025-04-14 +*/ +import com.heyu.api.data.entity.api.ApiIdCardEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.mybatis.plugin.annotations.LIMIT; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +@Mapper +public interface ApiIdCardDao extends BaseMapper { + + + ApiIdCardEntity selectApiIdCardById(@Param("id")Long id); + + + Long insertApiIdCard(ApiIdCardEntity apiIdCard); + + + Long insertOrUpdateApiIdCard(ApiIdCardEntity apiIdCard); + + + int updateApiIdCardById(ApiIdCardEntity apiIdCard); + + + int updateCoverApiIdCardById(ApiIdCardEntity apiIdCard); + + + int deleteApiIdCardById(@Param("id")Long id); + + + @LIMIT + ApiIdCardEntity selectApiIdCardByIdCardNameChannel(String idCard, String realName, String channel); +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/api/ApiIdCardEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/api/ApiIdCardEntity.java new file mode 100644 index 0000000..ed8c584 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/api/ApiIdCardEntity.java @@ -0,0 +1,182 @@ +package com.heyu.api.data.entity.api; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.lz.mybatis.plugin.annotations.AS; + +import java.math.BigDecimal; +import java.util.Date;import java.util.Date; +/** +*账户表 +* @author quyixiao +* @since 2025-04-14 +*/ + +@Data +@TableName("api_id_card") +public class ApiIdCardEntity implements java.io.Serializable { +private static final long serialVersionUID = 1L; + + public final static String CLASS_NAME ="com.heyu.api.data.entity.api.ApiIdCardEntity:"; + + public final static String all = CLASS_NAME + "*"; + public final static String id_ = CLASS_NAME + "id"; // 主键id + public final static String is_delete = CLASS_NAME + "is_delete"; // 是否删除:0 否 1 删除 + public final static String create_time = CLASS_NAME + "create_time"; // 创建时间 + public final static String modify_time = CLASS_NAME + "modify_time"; // 修改时间 + public final static String id_card = CLASS_NAME + "id_card"; // 身份证 + public final static String real_name = CLASS_NAME + "real_name"; // 真实姓名 + public final static String api_result = CLASS_NAME + "api_result"; // 结果 + public final static String channel_ = CLASS_NAME + "channel"; // 渠道 + //主键id + @TableId(value = "id", type = IdType.AUTO) + private Long id; + //是否删除:0 否 1 删除 + private Integer isDelete; + //创建时间 + private Date createTime; + //修改时间 + private Date modifyTime; + //身份证 + private String idCard; + //真实姓名 + private String realName; + //结果 + private String apiResult; + //渠道 + private String channel; + /** + * 主键id + * @return + */ + public Long getId() { + return id; + } + /** + * 主键id + * @param id + */ + public void setId(Long id) { + this.id = id; + } + + /** + * 是否删除:0 否 1 删除 + * @return + */ + public Integer getIsDelete() { + return isDelete; + } + /** + * 是否删除:0 否 1 删除 + * @param isDelete + */ + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + /** + * 创建时间 + * @return + */ + public Date getCreateTime() { + return createTime; + } + /** + * 创建时间 + * @param createTime + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 修改时间 + * @return + */ + public Date getModifyTime() { + return modifyTime; + } + /** + * 修改时间 + * @param modifyTime + */ + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + /** + * 身份证 + * @return + */ + public String getIdCard() { + return idCard; + } + /** + * 身份证 + * @param idCard + */ + public void setIdCard(String idCard) { + this.idCard = idCard; + } + + /** + * 真实姓名 + * @return + */ + public String getRealName() { + return realName; + } + /** + * 真实姓名 + * @param realName + */ + public void setRealName(String realName) { + this.realName = realName; + } + + /** + * 结果 + * @return + */ + public String getApiResult() { + return apiResult; + } + /** + * 结果 + * @param apiResult + */ + public void setApiResult(String apiResult) { + this.apiResult = apiResult; + } + + /** + * 渠道 + * @return + */ + public String getChannel() { + return channel; + } + /** + * 渠道 + * @param channel + */ + public void setChannel(String channel) { + this.channel = channel; + } + + @Override + public String toString() { + return "ApiIdCardEntity{" + + ",id=" + id + + ",isDelete=" + isDelete + + ",createTime=" + createTime + + ",modifyTime=" + modifyTime + + ",idCard=" + idCard + + ",realName=" + realName + + ",apiResult=" + apiResult + + ",channel=" + channel + + "}"; + } +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/api/ApiIdCardService.java b/api-mapper/src/main/java/com/heyu/api/data/service/api/ApiIdCardService.java new file mode 100644 index 0000000..beafce6 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/api/ApiIdCardService.java @@ -0,0 +1,34 @@ +package com.heyu.api.data.service.api; +/** +*

+* 账户表 服务类 +*

+* +* @author quyixiao +* @since 2025-04-14 +*/ +import com.baomidou.mybatisplus.extension.service.IService; +import com.heyu.api.data.entity.api.ApiIdCardEntity; +public interface ApiIdCardService extends IService { + + + + ApiIdCardEntity selectApiIdCardById(Long id); + + + Long insertApiIdCard(ApiIdCardEntity apiIdCard); + + + Long insertOrUpdateApiIdCard(ApiIdCardEntity apiIdCard); + + + int updateApiIdCardById(ApiIdCardEntity apiIdCard); + + + int updateCoverApiIdCardById(ApiIdCardEntity apiIdCard); + + + int deleteApiIdCardById(Long id); + + +} \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/service/impl/api/ApiIdCardServiceImpl.java b/api-mapper/src/main/java/com/heyu/api/data/service/impl/api/ApiIdCardServiceImpl.java new file mode 100644 index 0000000..f0c8211 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/service/impl/api/ApiIdCardServiceImpl.java @@ -0,0 +1,68 @@ +package com.heyu.api.data.service.impl.api; +/** +*

+* 账户表 服务类 +*

+* +* @author quyixiao +* @since 2025-04-14 +*/ + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.heyu.api.data.dao.api.ApiIdCardDao; +import com.heyu.api.data.entity.api.ApiIdCardEntity; +import com.heyu.api.data.service.api.ApiIdCardService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service +public class ApiIdCardServiceImpl extends ServiceImpl implements ApiIdCardService { + + + @Autowired + private ApiIdCardDao apiIdCardDao; + + + + @Override + public ApiIdCardEntity selectApiIdCardById(Long id){ + return apiIdCardDao.selectApiIdCardById(id); + } + + + + @Override + public Long insertApiIdCard(ApiIdCardEntity apiIdCard){ + return apiIdCardDao.insertApiIdCard(apiIdCard); + } + + + + @Override + public Long insertOrUpdateApiIdCard(ApiIdCardEntity apiIdCard){ + return apiIdCardDao.insertOrUpdateApiIdCard(apiIdCard); + } + + + + @Override + public int updateApiIdCardById(ApiIdCardEntity apiIdCard){ + return apiIdCardDao.updateApiIdCardById(apiIdCard); + } + + + + @Override + public int updateCoverApiIdCardById(ApiIdCardEntity apiIdCard){ + return apiIdCardDao.updateCoverApiIdCardById(apiIdCard); + } + + + + @Override + public int deleteApiIdCardById(Long id){ + return apiIdCardDao.deleteApiIdCardById(id); + } + + + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/ApiR.java b/api-mapper/src/main/java/com/heyu/api/data/utils/ApiR.java index 34bde83..b05ed72 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/ApiR.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/ApiR.java @@ -1,5 +1,8 @@ package com.heyu.api.data.utils; +import lombok.Data; + +@Data public class ApiR { /** * 业务数据放在 @@ -16,10 +19,17 @@ public class ApiR { */ private String errorMsg; + /*** + * 是否收钱 + */ + private boolean receiveMoney = false; + public static ApiR error(String error) { ApiR apiR = new ApiR(); apiR.errorMsg = error; apiR.success = false; + apiR.receiveMoney = false; + return apiR; } @@ -30,23 +40,10 @@ public class ApiR { return apiR; } - public T getData() { - return data; + public ApiR setReceiveMoney(boolean receiveMoney) { + this.receiveMoney = receiveMoney; + return this; } - public boolean isSuccess() { - return success; - } - public void setSuccess(boolean success) { - this.success = success; - } - - public String getErrorMsg() { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) { - this.errorMsg = errorMsg; - } } diff --git a/api-mapper/src/main/resources/mapper/api/ApiIdCardDao.xml b/api-mapper/src/main/resources/mapper/api/ApiIdCardDao.xml new file mode 100644 index 0000000..8b8177f --- /dev/null +++ b/api-mapper/src/main/resources/mapper/api/ApiIdCardDao.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java index 89437ad..3ca41a3 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_insert.java @@ -93,7 +93,7 @@ public class MysqlMain_insert { System.out.println(MysqlMain_insert.save_path); List list = new ArrayList(); - list.add(new TablesBean("api_post_code")); + list.add(new TablesBean("api_id_card")); List list2 = new ArrayList(); diff --git a/api-third/src/main/java/com/heyu/api/tencent/TencentBaseHandle.java b/api-third/src/main/java/com/heyu/api/tencent/TencentBaseHandle.java index 19552a6..2170ee0 100644 --- a/api-third/src/main/java/com/heyu/api/tencent/TencentBaseHandle.java +++ b/api-third/src/main/java/com/heyu/api/tencent/TencentBaseHandle.java @@ -24,7 +24,7 @@ public abstract class TencentBaseHandle { } RR r = run(p); log.info("TencentBaseHandle result : {}", JSON.toJSONString(r)); - return ApiR.setData(r); + return ApiR.setData(r).setReceiveMoney(true); } catch (Exception e) { log.error("请求腾讯异常", e); } 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 new file mode 100644 index 0000000..75a8574 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/tencent/handle/TIdCardOCRVerificationHandle.java @@ -0,0 +1,92 @@ +package com.heyu.api.tencent.handle; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.heyu.api.data.constants.ApiConstants; +import com.heyu.api.data.dao.api.ApiIdCardDao; +import com.heyu.api.data.entity.api.ApiIdCardEntity; +import com.heyu.api.data.utils.StringUtils; +import com.heyu.api.tencent.TencentBaseHandle; +import com.heyu.api.tencent.request.TTIdCardOCRVerificationRequest; +import com.tencentcloudapi.faceid.v20180301.FaceidClient; +import com.tencentcloudapi.faceid.v20180301.models.IdCardOCRVerificationRequest; +import com.tencentcloudapi.faceid.v20180301.models.IdCardOCRVerificationResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/*** + * + * + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=IdCardOCRVerification + * + * + *身份证识别及信息核验 + */ +@Component +@Slf4j +public class TIdCardOCRVerificationHandle extends TencentBaseHandle { + + + @Autowired + private FaceidClient client; + + + @Autowired + private ApiIdCardDao apiIdCardDao; + + @Override + public String check(TTIdCardOCRVerificationRequest ttIdCardOCRVerificationRequest) { + if (StringUtils.isNotBlank(ttIdCardOCRVerificationRequest.getIdCard()) + && StringUtils.isBlank(ttIdCardOCRVerificationRequest.getName())) { + return "姓名不能为空"; + } + + + if (StringUtils.isBlank(ttIdCardOCRVerificationRequest.getIdCard()) + && StringUtils.isNotBlank(ttIdCardOCRVerificationRequest.getName())) { + return "身份证号不能为空"; + } + + if (StringUtils.isBlank(ttIdCardOCRVerificationRequest.getIdCard()) + && StringUtils.isBlank(ttIdCardOCRVerificationRequest.getName()) + && StringUtils.isBlank(ttIdCardOCRVerificationRequest.getImageBase64()) + && StringUtils.isBlank(ttIdCardOCRVerificationRequest.getImageUrl()) + ) { + return "姓名身份证号以及图片不能同时为空"; + } + return null; + } + + @Override + public IdCardOCRVerificationResponse run(TTIdCardOCRVerificationRequest ap) throws Exception { + IdCardOCRVerificationResponse resp = null; + if (StringUtils.isNotBlank(ap.getIdCard()) && StringUtils.isNotBlank(ap.getName())) { + + ApiIdCardEntity apiIdCardEntity = apiIdCardDao.selectApiIdCardByIdCardNameChannel(ap.getIdCard(), ap.getName(), ApiConstants.tencent); + if (apiIdCardEntity != null) { + resp = JSONObject.parseObject(apiIdCardEntity.getApiResult(), IdCardOCRVerificationResponse.class); + return resp; + } + } + + // 实例化一个请求对象,每个接口都会对应一个request对象 + IdCardOCRVerificationRequest req = new IdCardOCRVerificationRequest(); + req.setIdCard(ap.getIdCard()); + req.setName(ap.getName()); + req.setImageUrl(ap.getImageUrl()); + req.setImageBase64(ap.getImageBase64()); + + // 返回的resp是一个IdCardOCRVerificationResponse的实例,与请求对象对应 + resp = client.IdCardOCRVerification(req); + + ApiIdCardEntity apiIdCardEntity = new ApiIdCardEntity(); + apiIdCardEntity.setIdCard(ap.getIdCard()); + apiIdCardEntity.setRealName(ap.getName()); + apiIdCardEntity.setChannel(ApiConstants.tencent); + apiIdCardEntity.setApiResult(JSON.toJSONString(resp)); + apiIdCardDao.insertApiIdCard(apiIdCardEntity); + + return resp; + } +} diff --git a/api-third/src/main/java/com/heyu/api/tencent/request/TTIdCardOCRVerificationRequest.java b/api-third/src/main/java/com/heyu/api/tencent/request/TTIdCardOCRVerificationRequest.java new file mode 100644 index 0000000..cc16a83 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/tencent/request/TTIdCardOCRVerificationRequest.java @@ -0,0 +1,57 @@ +package com.heyu.api.tencent.request; + +import com.heyu.api.tencent.TencentBaseRequest; +import lombok.Data; + + +/*** + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=IdCardOCRVerification + * + *身份证识别及信息核验 + */ + +@Data +public class TTIdCardOCRVerificationRequest extends TencentBaseRequest { + + + /* + +否: + + 身份证号。 +- 姓名和身份证号、ImageBase64、ImageUrl三者必须提供其中之一。 +- 若都提供了,则按照姓名和身份证号>ImageBase64>ImageUrl的优先级使用参数。 +示例值:11204416541220243X + */ + private String idCard; + + + + /*** + * 否 : + * 姓名。 + * 示例值:韦小宝 + */ + private String name ; + + + /*** + * 否: String 身份证人像面的 Base64 值。 + * - 支持的图片格式:PNG、JPG、JPEG,暂不支持 GIF 格式。 + * - 支持的图片大小:所下载图片经Base64编码后不超过 3M。请使用标准的Base64编码方式(带=补位),编码规范参考RFC4648。 + * 示例值:/9j/4AAQSkZJRg…..s97n//2Q== + * + */ + private String imageBase64; + + /*** + * 否 String 身份证人像面的 Url 地址。 + * - 支持的图片格式:PNG、JPG、JPEG,暂不支持 GIF 格式。 + * - 支持的图片大小:所下载图片经 Base64 编码后不超过 3M。图片下载时间不超过 3 秒。 + * - 图片存储于腾讯云的 Url 可保障更高的下载速度和稳定性,建议图片存储于腾讯云。 + * - 非腾讯云存储的 Url 速度和稳定性可能受一定影响。 + * 示例值:https://www.qq.com/image.jpg + */ + private String imageUrl; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java new file mode 100644 index 0000000..64f8be6 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardOCRVerificationController.java @@ -0,0 +1,81 @@ +package com.heyu.api.controller.idcard; + + +import com.heyu.api.data.annotation.CacheResult; +import com.heyu.api.data.utils.ApiR; +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.request.TTIdCardOCRVerificationRequest; +import com.tencentcloudapi.faceid.v20180301.models.IdCardOCRVerificationResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/*** + * + * + * https://console.cloud.tencent.com/api/explorer?Product=faceid&Version=2018-03-01&Action=IdCardOCRVerification + * + * + * + *身份证识别及信息核验 + * + * + * 二要素 + * + * + * + */ + +@Slf4j +@RestController +@RequestMapping("/idcard") +public class IdCardOCRVerificationController { + + + @Autowired + private TIdCardOCRVerificationHandle tIdCardOCRVerificationHandle; + + + + // http://localhost:8888/idcard/verification?idCardNumber=430529199209255030&realName=瞿贻晓 + @RequestMapping("/verification") + @CacheResult + public R certification(ApiIdentityCardSecondRequest apiIdentityCardRequest) { + IdCardOCRVerificationResp idCardOCRVerificationResp = new IdCardOCRVerificationResp(); + TTIdCardOCRVerificationRequest ttIdCardOCRVerificationRequest = new TTIdCardOCRVerificationRequest(); + ttIdCardOCRVerificationRequest.setIdCard(apiIdentityCardRequest.getIdCardNumber()); + ttIdCardOCRVerificationRequest.setName(apiIdentityCardRequest.getRealName()); + ApiR apiR = tIdCardOCRVerificationHandle.handle(ttIdCardOCRVerificationRequest); + if (apiR.isSuccess()) { + IdCardOCRVerificationResponse idCardOCRVerificationResponse = apiR.getData(); + if (idCardOCRVerificationResponse != null) { + if ("0".equals(idCardOCRVerificationResponse.getResult())) { + idCardOCRVerificationResp.setCode("1"); // 姓名和身份证号一致。 + idCardOCRVerificationResp.setDesc("姓名和身份证号一致"); + } else if ("-1".equals(idCardOCRVerificationResponse.getResult())) { + idCardOCRVerificationResp.setCode("0"); // 姓名和身份证号不一致。 + idCardOCRVerificationResp.setDesc("姓名和身份证号不一致"); + } 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.setDesc("其他情况"); //其他情况 + } + idCardOCRVerificationResp.setIdCardNumber(apiIdentityCardRequest.getIdCardNumber()); + idCardOCRVerificationResp.setRealName(apiIdentityCardRequest.getRealName()); + return R.ok().setData(idCardOCRVerificationResp); + + } + } + return R.error(apiR.getErrorMsg()); + } + +} \ No newline at end of file diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java new file mode 100644 index 0000000..d9cb76b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/card/IdCardOCRVerificationResp.java @@ -0,0 +1,33 @@ +package com.heyu.api.resp.card; + + +import lombok.Data; + +@Data +public class IdCardOCRVerificationResp { + + /** + * 认证结果码,收费情况如下。 + - 收费结果码: + 1: 姓名和身份证号一致。 + 0: 姓名和身份证号不一致。 + 2: 其他情况 + */ + private String code; + + /** + * 业务结果描述。 + */ + private String desc; + + /** + * 用于验证的姓名。 + */ + private String realName; + + /** + * 用于验证的身份证号。 + */ + private String idCardNumber; + +}