设计网站 杭州,数据营销,免费申请流量卡,石狮网站建设费用目录 1.申请腾讯OCR权限
2.代码思路
3.Postman测试 1.申请腾讯OCR权限 获取 secretId 和 secretKey#xff0c;见上文从0到1#xff0c;申请cos服务器并上传图片到cos文件服务器-CSDN博客https://blog.csdn.net/m0_55627541/article/details/133902798
2.代码思路
入参…目录 1.申请腾讯OCR权限
2.代码思路
3.Postman测试 1.申请腾讯OCR权限 获取 secretId 和 secretKey见上文从0到1申请cos服务器并上传图片到cos文件服务器-CSDN博客https://blog.csdn.net/m0_55627541/article/details/133902798
2.代码思路
入参有两个值第一个为图片的云服务器路径第二个为版面(正面/反面)
controller /*** 身份证识别* param path* return*/PostMapping(/IDCardOCR)public Result IDCardOCR(String path,Integer cardSide) {IDCardResponse idCardResponse idCardOCRService.identifyIDCardByUrl(path, cardSide);return Result.success(校验成功,idCardResponse);}
serviceImpl
package com.zsp.quartz.common;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.ocr.v20181119.OcrClient;
import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRRequest;
import com.tencentcloudapi.ocr.v20181119.models.IDCardOCRResponse;
import com.zsp.quartz.Exception.CustomException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;/*** 腾讯身份证识别接口*/
Service
Slf4j
public class TencentIDCardOCRServiceImpl implements IDCardOCRService {private static String secretId xxx;private static String secretKey xxx;private static String regionName ap-shanghai;Overridepublic IDCardResponse identifyIDCardByUrl(String imgUrl, Integer cardSide) {IDCardOCRRequest req new IDCardOCRRequest();req.setImageUrl(imgUrl);if(cardSide ! null) {if (cardSide 1) {req.setCardSide(FRONT);} else if (cardSide 2) {req.setCardSide(BACK);}}return idCardAction(req);}private IDCardResponse idCardAction(IDCardOCRRequest req) {Credential cred new Credential(secretId, secretKey);// 实例化一个http选项可选的没有特殊需求可以跳过HttpProfile httpProfile new HttpProfile();httpProfile.setEndpoint(ocr.tencentcloudapi.com);// 实例化一个client选项可选的没有特殊需求可以跳过ClientProfile clientProfile new ClientProfile();clientProfile.setHttpProfile(httpProfile);OcrClient client new OcrClient(cred, regionName,clientProfile);IDCardOCRResponse res null;try {res client.IDCardOCR(req);} catch (TencentCloudSDKException e) {throw new CustomException(校验失败);}if(res ! null) {IDCardResponse idCardResponse new IDCardResponse();idCardResponse.setAddress(res.getAddress());idCardResponse.setAuthority(res.getAuthority());if(!StrUtil.isEmpty(res.getBirth())) {idCardResponse.setBirth(DateUtil.parseDate(res.getBirth()));}idCardResponse.setIdNum(res.getIdNum());idCardResponse.setName(res.getName());idCardResponse.setNation(res.getNation());if(男.equals(res.getSex())) {idCardResponse.setSex(1);} else if(女.equals(res.getSex())) {idCardResponse.setSex(2);} else {idCardResponse.setSex(0);}idCardResponse.setValidDate(res.getValidDate());return idCardResponse;}return null;}}VO层
package com.zsp.quartz.common;import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;import java.util.Date;Data
public class IDCardResponse {/*** 姓名人像面*/JSONField(name Name)private String name;/*** 性别人像面*/JSONField(name Sex)private Integer sex;/*** 民族人像面*/JSONField(name Nation)private String nation;/*** 出生日期人像面*/JSONField(name Birth)JsonFormat(pattern yyyy-MM-dd, timezone GMT8)private Date birth;/*** 地址人像面*/JSONField(name Address)private String address;/*** 身份证号人像面*/JSONField(name IdNum)private String idNum;/*** 发证机关国徽面*/JSONField(name Authority)private String authority;/*** 证件有效期国徽面*/JSONField(name ValidDate)private String validDate;
}
3.Postman测试