身份证正反面合并+识别OCR接口调用

张开发
2026/5/3 7:21:50 15 分钟阅读
身份证正反面合并+识别OCR接口调用
身份证合并接口ID Card Merge API是一款基于 OCR 技术的身份证识别与图片合成服务。 它支持对 身份证正反面图片进行自动识别、合并与规范化输出同时返回身份证关键信息姓名、性别、身份证号、签发机关等 满足金融开户、政务服务 等多种场景需求。一、功能说明1.身份证正反面合并自动将身份证正反面图片合成为一张高分辨率合成图。输出尺寸、DPI、边距比例均可配置默认 1050×1500DPI 300。2.身份证OCR识别正面识别姓名、性别、民族、出生日期、住址、身份证号码反面识别签发机关、有效期限3.图像质量检测完整度检测是否裁切完整清晰度检测文字可识别度遮挡度检测是否无遮挡4.图片大小控制可设置最小/最大文件大小系统自动压缩确保上传合规。5.支持功能定制个性化需求可联系人工客服沟通二、效果展示支持免费在线测试https://market.shiliuai.com/tools/id-card-merge三、调用说明1.接口信息请求URLhttps://ocr-api.shiliuai.com/api/id_card_merge/v1请求方式POST返回类型JSON2.接口参数2.1请求参数Header方式一简单认证参数类型说明Content-Typestringapplication/jsonAuthorizationstringAPPCODE 您的AppCode (注意英文空格)方式二签名认证参数类型说明Content-Typestringapplication/jsonx-ca-keystring您的AppKeyx-ca-timestampstring时间戳毫秒x-ca-signaturestring签名sign2.2请求参数Body参数是否必填类型说明image_base64_1必填stringbase64编码的图片文件1image_base64_2必填stringbase64编码的图片文件2width选填int合并图的宽度默认为1050height选填int合并图的高度默认为1500card_margin_ratio选填float证件边距比例定义为边距/证件长边默认为0.1dpi选填int合并图dpi, 默认为300min_file_size选填int最小文件大小比如102400表示100kB默认为None不压缩max_file_size选填int最大文件大小默认为None四、调用示例代码1.python示例代码# API文档https://market.shiliuai.com/doc/id-card-merge # -*- coding: utf-8 -*- import requests import base64 import json # 请求接口 URL https://ocr-api.shiliuai.com/api/id_card_merge/v1 # 图片转base64 def get_base64(file_path): with open(file_path, rb) as f: data f.read() b64 base64.b64encode(data).decode(utf8) return b64 def demo(appcode, file_path_1, file_path_2): # 请求头 headers { Authorization: APPCODE %s % appcode, Content-Type: application/json } # 请求体 b64_1 get_base64(file_path_1) b64_2 get_base64(file_path_2) data {image_base64_1: b64_1, image_base64_2: b64_2} # 请求 response requests.post(urlURL, headersheaders, jsondata) content json.loads(response.content) print(content) if __name____main__: appcode 你的APPCODE file_path_1 身份证正面图片路径 file_path_2 身份证反面图片路径 demo(appcode, file_path_1, file_path_2)2.PHP示例代码// API文档https://market.shiliuai.com/doc/id-card-merge //图片转base64 function get_base64($path){ if($fp fopen($path, rb, 0)) { $binary fread($fp, filesize($path)); // 文件读取 fclose($fp); $b64 base64_encode($binary); // 转base64 }else{ $b64; printf(%s 文件不存在, $path); } return $b64; } $url https://ocr-api.shiliuai.com/api/id_card_merge/v1; $appcode 你的appcode; $img_path_1 图片身份证正面图片路径; $img_path_2 图片身份证反面图片路径; $method POST; //请求头 $headers array(); array_push($headers, Authorization:APPCODE . $appcode); array_push($headers, Content-Type:application/json); //请求体 $b64_1 get_base64($img_path_1); $b64_2 get_base64($img_path_2); $data array( image_base64_1 $b64_1, image_base64_2 $b64_2 ); $post_data json_encode($data); //请求 $curl curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_FAILONERROR, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); $result curl_exec($curl); var_dump($result);//API文档https://market.shiliuai.com/doc/id-card-merge import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Base64; public class Main { public static String get_base64(String path) { String b64 ; try { byte[] content FileUtils.readFileToByteArray(new File(path)); b64 Base64.getEncoder().encodeToString(content); } catch (IOException e) { e.printStackTrace(); } return b64; } public static void main(String[] args) { String url https://ocr-api.shiliuai.com/api/id_card_merge/v1; // 请求接口 String appcode 你的APPCODE; String imgFile1 本地身份证正面图片路径; String imgFile2 本地身份证反面图片路径; Map headers new HashMap(); headers.put(Authorization, APPCODE appcode); headers.put(Content-Type, application/json); // 请求体 JSONObject requestObj new JSONObject(); requestObj.put(image_base64_1, get_base64(imgFile1)); requestObj.put(image_base64_2, get_base64(imgFile2)); String bodys requestObj.toString(); try (CloseableHttpClient httpClient HttpClients.createDefault()) { HttpPost httpPost new HttpPost(url); for (Map.Entry entry : headers.entrySet()) { httpPost.addHeader(entry.getKey(), entry.getValue()); } StringEntity entity new StringEntity(bodys, UTF-8); httpPost.setEntity(entity); HttpResponse response httpClient.execute(httpPost); int stat response.getStatusLine().getStatusCode(); if (stat ! 200) { System.out.println(Http code: stat); return; } String res EntityUtils.toString(response.getEntity()); JSONObject res_obj JSON.parseObject(res); System.out.println(res_obj.toJSONString()); } catch (Exception e) { e.printStackTrace(); } } }例代码

更多文章