Bootstrap

身份证OCR识别接口如何用Java调用

一、什么是身份证OCR识别接口?

身份证OCR识别接口又叫身份证识别,身份证图像识别,身份证文字识别,即自动识别和提取身份证上的文字和数字信息。它可以通过图像处理和模式识别算法,将身份证中的姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等关键信息准确地提取出来。

二、身份证OCR识别接口适用场景有哪些?

1.金融行业:用于银行开户、贷款申请、信用卡办理、证券移动开户等业务,可以快速准确地提取客户身份证信息,提高业务办理效率,同时有助于进行实名认证和风险控制;

2.政务服务:在身份证办理、户籍管理、社保登记、公安管理等方面,能够快速识别公民身份证信息并与其他信息核对,提升政务服务的效率和准确性;

3.交通领域:应用于汽车租赁、火车票预订、飞机票预订等业务,可快速识别乘客身份证信息,提高业务办理效率;

4.电信实名制:用户进行手机开卡时,用于采集和核验身份证信息,减少用户等待时间,提升用户体验;

5.保险行业:在移动投保、车险销售等业务中,身份证 OCR 可快速进行身份证认证,简化业务流程。

三、如何用Java实现身份证OCR识别接口调用?

下面我们以Java为例进行接口调用:

	public static void main(String[] args) {
	    String host = "https://kzcardocr.market.alicloudapi.com";
	    String path = "/api-mall/api/idcard/ocr";
	    String method = "POST";
	    String appcode = "你自己的AppCode";
	    Map<String, String> headers = new HashMap<String, String>();
	    //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
	    headers.put("Authorization", "APPCODE " + appcode);
	    //根据API的要求,定义相对应的Content-Type
	    headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    Map<String, String> querys = new HashMap<String, String>();
	    Map<String, String> bodys = new HashMap<String, String>();
	    bodys.put("image", "image");
	    bodys.put("url", "url");


	    try {
	    	/**
	    	* 重要提示如下:
	    	* HttpUtils请从
	    	* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
	    	* 下载
	    	*
	    	* 相应的依赖请参照
	    	* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
	    	*/
	    	HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
	    	System.out.println(response.toString());
	    	//获取response的body
	    	//System.out.println(EntityUtils.toString(response.getEntity()));
	    } catch (Exception e) {
	    	e.printStackTrace();
	    }
	}

正确返回示例代码如下:

{
    "msg": "成功",
    "success": true,
    "code": 200,
    "data": {
        "result": 0, //0 :识别成功,1:识别失败
        "side": "front", // front:正面,back :反面
        "orderNo": "202304031918463633573",
        "info": {
            "number": "330*********1011", //身份证号
            "address": "浙江省*****651号", //住址
            "month": "8", //出生月份
            "nation": "汉", //民族
            "year": "1981", //出生年份
            "sex": "男", //性别
            "name": "张*江", //姓名
            "day": "16" //出生-日
        }
    }
}

{
    "msg": "成功",
    "success": true,
    "code": 200,
    "data": {
        "orderNo": "202304031918463633574",
        "result": 0, //0 :识别成功,1:识别失败
        "side": "back",// back :反面
        "info": {
            "authority": "上海市公安局**局",//签发机关
            "timelimit": "20220716-20420716"//有效期限
        }
    }
}

;