集成微信小程序的时候需要用到自动识别身份证信息填充进去,所以看文档集成百度的卡证识别:

首先百度识别功能很强大:

有上述功能。

识别身份证需要识别的是身份证的图片,所以就要将图片拿到,在百度api的调用接口中,需要将图片转化成base64才可以用百度的api进行识别,上篇已经简述了图片转化为base64字符串了。下面主要说百度api的调用:

百度识别的url:https://aip.baidubce.com/rest/2.0/ocr/v1/idcard

若想识别还需要token和图片的参数:

1.图片的参数就是拿到的图片的base64的字符串,拼接的参数为:

params = "id_card_side=front&" + URLEncoder.encode("image", "UTF-8") + "="

+ URLEncoder.encode(base64ImgStr, "UTF-8");

2.token的获取直接上代码:

// 获取token地址
String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
String getAccessTokenUrl = authHost
// 1. grant_type为固定参数
+ "grant_type=client_credentials"
// 2. 官网获取的 API Key
+ "&client_id=" + ak
// 3. 官网获取的 Secret Key
+ "&client_secret=" + sk;
try {
URL realUrl = new URL(getAccessTokenUrl);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
logger.info(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String result = "";
String line;
while ((line = in.readLine()) != null) {
result += line;
}
/**
* 返回结果示例
*/
logger.info("result:" + result);

根据你所拿到的参数去请求token,获取结果,这个token是会失效的,所以需要自己进行处理。

然后调用HttpUtil.post(idcardIdentificate, accessToken, params);

请求数据,其中idcardIdentificate是调用百度的api的url:https://aip.baidubce.com/rest/2.0/ocr/v1/idcard

其中所用的请求数据的工具类HttpUtil:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

/**
 * http 工具类
 */
public class HttpUtil {

public static String post(String requestUrl, String accessToken, String params)
            throws Exception {
        String contentType = "application/x-www-form-urlencoded";
        return HttpUtil.post(requestUrl, accessToken, contentType, params);
    }

public static String post(String requestUrl, String accessToken, String contentType, String params)
            throws Exception {
        String encoding = "UTF-8";
        if (requestUrl.contains("nlp")) {
            encoding = "GBK";
        }
        return HttpUtil.post(requestUrl, accessToken, contentType, params, encoding);
    }

public static String post(String requestUrl, String accessToken, String contentType, String params, String encoding)
            throws Exception {
        String url = requestUrl + "?access_token=" + accessToken;
        return HttpUtil.postGeneralUrl(url, contentType, params, encoding);
    }

public static String postGeneralUrl(String generalUrl, String contentType, String params, String encoding)
            throws Exception {
        URL url = new URL(generalUrl);
        // 打开和URL之间的连接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        // 设置通用的请求属性
        connection.setRequestProperty("Content-Type", contentType);
        connection.setRequestProperty("Connection", "Keep-Alive");
        connection.setUseCaches(false);
        connection.setDoOutput(true);
        connection.setDoInput(true);

// 得到请求的输出流对象
        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
        out.write(params.getBytes(encoding));
        out.flush();
        out.close();

// 建立实际的连接
        connection.connect();
        // 获取所有响应头字段
        Map<String, List<String>> headers = connection.getHeaderFields();
        // 遍历所有的响应头字段
        for (String key : headers.keySet()) {
            System.err.println(key + "--->" + headers.get(key));
        }
        // 定义 BufferedReader输入流来读取URL的响应
        BufferedReader in = null;
        in = new BufferedReader(
                new InputStreamReader(connection.getInputStream(), encoding));
        String result = "";
        String getLine;
        while ((getLine = in.readLine()) != null) {
            result += getLine;
        }
        in.close();
        System.err.println("result:" + result);
        return result;
    }
}

若有疑问咨询QQ:1147726728

百度api识别身份证信息相关推荐

  1. uniapp:使用百度API提取身份证信息(微信小程序适用)

    首先,在百度申请apiKey和SecretKey,参考官网. https://ai.baidu.com/ai-doc/OCR/dk3iqnq51 想要提取身份证信息,一共需要完成三个步骤: 1.使用a ...

  2. vue+springboot实现调用本地摄像头拍照上传后端使用百度ocr识别身份证信息

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.前端 二.后端 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一.前端 1.首先进入页面打开摄像头 2.点击手动 ...

  3. 记录在小程序中前端调用百度 Ocr 识别身份证信息

    微信小程序因为业务扩展需要用户身份证信息,这里记录一下在小程序中通过百度ocr识别的一个开发过程记录. 1. 注册百度云账号 首先,我们要去百度云注册个账号,百度云注册 ,已经注册过可以忽略这部.注册 ...

  4. 身份证识别,银行卡识别,驾驶证识别,行驶证识别,根据百度文字识别 api 封装,能快速识别身份证信息,银行卡信息,驾驶证信息,行驶证信息,使用非常方便

    OCR_identify 项目地址:wenchaosong/OCR_identify  简介:身份证识别,银行卡识别,驾驶证识别,行驶证识别,根据百度文字识别 api 封装,能快速识别身份证信息,银行 ...

  5. SpringBoot、Vue对接百度云API实现身份证信息识别功能(超详细,包含具体代码实现)

    记录一次开发过程中,Springboot.vue.oss文件上传的整合框架,对接百度云卡证识别API实现身份证信息识别功能的详细过程,包含具体代码实现以及详细注释. 文章目录 前提知识 1.JSON ...

  6. Python调用百度API进行身份证识别

    目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...

  7. 免费使用识别身份证信息、银行卡、驾驶证、行驶证、车牌、营业执照、网络图片文字等

    免费使用识别身份证信息.银行卡.驾驶证.行驶证.车牌.营业执照.网络图片文字等.... 身份证效果展示(其他不展示) 前提 注册注册百度云,注册之后登录. 点击右上角的头像,跳转页面之后,点击左上角的 ...

  8. uni-app之接入百度OCR识别身份证(微信小程序版本)

    本文为uni-app接入百度OCR识别身份证号,话不多说,直接上代码: 1. 第一步注册百度智能云账号,选择文字识别,创建应用,获取Api Key 与 Secret Key(下面要用到): 2.第二步 ...

  9. app上传图片以及识别身份证信息

    app上传图片以及识别身份证信息 主要功能实现:1手机端拍照上传身份证照片到服务器,然后读取出身份证的信息. 前端: //选择相册var files=[];var index=1; function ...

最新文章

  1. CSS之布局(盒模型)
  2. 在html中加入滚动条,html在div中显示滚动条
  3. python新手遇到的5大坑
  4. 十二、深入Python列表和元组
  5. dubbo provider异步_dubbo九连问你知道多少?
  6. ES6笔记 -- 字符串拓展
  7. 【Java】浅谈JavaDoc文档注释
  8. springcache使用笔记002_注释驱动的 Spring cache 按条件查询
  9. 后端技术栈学习路线与面试技巧指北
  10. 华硕主板升级更新BIOS版本
  11. verilog驱动1602液晶屏
  12. Centos7磁盘阵列部署与修复
  13. S@Kura的PHP进阶之路(四)
  14. 挑战程序设计竞赛:反转法
  15. RobotStudio 建立机器人模型和虚拟示教器的使用
  16. pg_restore恢复备份(记录一下)
  17. 软件架构设计最佳实践(课程大纲)
  18. springboot集成redis报错找不到bean
  19. C#之Image使用
  20. 初出茅庐 你好C语言

热门文章

  1. GPT系列:GPT1 -> 2 -> 3 -> InstructGPT ->ChatGPT
  2. Excel基础学习(2013及以上版本)
  3. ​柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 | 焦点
  4. 苹果切换输入法_轻松搞定缅甸语手机输入法(苹果篇)
  5. 免费顶级域名+github个人主页教程
  6. Web3中文|USDC的“脱锚”是稳定币稳定性的终结吗?
  7. gin学习——邮箱发送验证码注册用户
  8. 【深度学习入门】基于 ResNet50 的狗狗品种识别
  9. 从汉字到区位码的转换
  10. 【jzoj4763】【旷野大计算】【莫队】