提交修改
This commit is contained in:
parent
89a30e0400
commit
f9e815ba75
@ -306,4 +306,10 @@ public class ApiConstants {
|
||||
public static final String t_auth = "t_auth";
|
||||
|
||||
|
||||
/***
|
||||
* 腾讯
|
||||
*/
|
||||
public static final String tencent = "tencent";
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package com.heyu.api.data.dao.api;
|
||||
/**
|
||||
* <p>
|
||||
* 账户表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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> {
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
@ -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 +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.heyu.api.data.service.api;
|
||||
/**
|
||||
* <p>
|
||||
* 账户表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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> {
|
||||
|
||||
|
||||
|
||||
ApiIdCardEntity selectApiIdCardById(Long id);
|
||||
|
||||
|
||||
Long insertApiIdCard(ApiIdCardEntity apiIdCard);
|
||||
|
||||
|
||||
Long insertOrUpdateApiIdCard(ApiIdCardEntity apiIdCard);
|
||||
|
||||
|
||||
int updateApiIdCardById(ApiIdCardEntity apiIdCard);
|
||||
|
||||
|
||||
int updateCoverApiIdCardById(ApiIdCardEntity apiIdCard);
|
||||
|
||||
|
||||
int deleteApiIdCardById(Long id);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
package com.heyu.api.data.service.impl.api;
|
||||
/**
|
||||
* <p>
|
||||
* 账户表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @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<ApiIdCardDao, ApiIdCardEntity> 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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,5 +1,8 @@
|
||||
package com.heyu.api.data.utils;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ApiR<T> {
|
||||
/**
|
||||
* 业务数据放在
|
||||
@ -16,10 +19,17 @@ public class ApiR<T> {
|
||||
*/
|
||||
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<T> {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.heyu.api.data.dao.api.ApiIdCardDao">
|
||||
|
||||
</mapper>
|
||||
|
||||
@ -93,7 +93,7 @@ public class MysqlMain_insert {
|
||||
System.out.println(MysqlMain_insert.save_path);
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
list.add(new TablesBean("api_post_code"));
|
||||
list.add(new TablesBean("api_id_card"));
|
||||
|
||||
|
||||
List<TablesBean> list2 = new ArrayList<TablesBean>();
|
||||
|
||||
@ -24,7 +24,7 @@ public abstract class TencentBaseHandle<P, RR> {
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@ -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<TTIdCardOCRVerificationRequest, IdCardOCRVerificationResponse> {
|
||||
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
@ -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<IdCardOCRVerificationResponse> 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());
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user