整合开始之前需要自己去阿里云注册一个号

主要还是在阿里云的演示里把代码拿了过来做了一些修改,现在可以直接使用,HttpUtils包要在
https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java 这里下载

这个是营业执照的代码

import com.alibaba.fastjson.JSONObject;
import com.example.ocr.model.BusinessLicense;
import com.example.ocr.utils.HttpUtils;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Encoder;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;@RestController
public class OCRCharterController {@PostMapping("cccc")public Object picOCRBack(@RequestParam("pic") MultipartFile file) throws Exception {String fileStr = "";if (!file.isEmpty()){BASE64Encoder encoder = new BASE64Encoder();// 通过base64来转化图片try {fileStr = (encoder.encode(file.getBytes())).replaceAll("\r\n", "");} catch (IOException e) {e.printStackTrace();}}String host = "https://dm-58.data.aliyun.com";String path = "/rest/160601/ocr/ocr_business_license.json";String method = "POST";String appcode = "自己的appcode号";Map<String, String> headers = new HashMap<>();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put("Authorization", "APPCODE " + appcode);//根据API的要求,定义相对应的Content-Typeheaders.put("Content-Type", "application/json; charset=UTF-8");Map<String, String> querys = new HashMap<>();String bodys = "{\"image\":\""+fileStr+"\"}";Object object = null;try {HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);System.out.println(response.toString());String msg = new String(EntityUtils.toString(response.getEntity()).getBytes(),"UTF-8");//转json对象到定义的实体类object = JSONObject.toJavaObject(JSONObject.parseObject(msg), BusinessLicense.class);System.out.println(object);return object;} catch (Exception e) {e.printStackTrace();}return object;}
}

会输出的对象是

下边这个就是身份证正面的认证

@RequestMapping(value = "faceCode",method = RequestMethod.POST)public Object OCRFace(@RequestParam("code") MultipartFile file) throws Exception{String fileStr = "";if (!file.isEmpty()){BASE64Encoder encoder = new BASE64Encoder();// 通过base64来转化图片try {fileStr = (encoder.encode(file.getBytes())).replaceAll("\r\n", "");} catch (IOException e) {e.printStackTrace();}}String host = "http://dm-51.data.aliyun.com";String path = "/rest/160601/ocr/ocr_idcard.json";String method = "POST";String appcode = "xxx";Map<String, String> headers = new HashMap<String, String>();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE headers.put("Authorization", "APPCODE " + appcode);//根据API的要求,定义相对应的Content-Typeheaders.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");Map<String, String> querys = new HashMap<String, String>();JSONObject requestObj = new JSONObject();JSONObject configObj = new JSONObject();configObj.put("side", "face");requestObj.put("image",fileStr);requestObj.put("configure",configObj.toString());IdCard object = null;try {HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, requestObj.toString());String msg = new String(EntityUtils.toString(response.getEntity()).getBytes(),"UTF-8");object = JSONObject.toJavaObject(JSONObject.parseObject(msg),IdCard.class);System.out.println(object);return object;} catch (Exception e) {e.printStackTrace();return object;}}

反面认证只是需要吧configObj.put(“side”, “face”);里的face参数改为back就ok了

下面是实体类:

这是身份证的

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.ToString;@Data
@ToString
public class IdCard {//姓名private String name;//地址private String address;//性别private String sex;//身份证号private String num;//出生年月private String birth;//民族private String nationality;//签发机关private String issue;//开始时间@JSONField(name = "start_date")private String startDate;//结束时间@JSONField(name = "end_date")private String endDate;//是否识别成功private boolean success;//是否复印件private boolean fake;
}
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.ToString;@Data
@ToString
public class BusinessLicense {//地址private String address;//经营范围private String business;//注册资本private String capital;//名称private String name;//法人private String person;//注册资金@JSONField(name = "reg_num")private String regNum;//是否识别成功private boolean success;//公司类型private String type;//营业终止日期@JSONField(name = "valid_period")private String validPeriod;//注册日期@JSONField(name = "establish_date")private String establishDate;//是否复印件private boolean fake;}

ok,搞定。

springboot整合阿里云OCR实现身份证和营业执照识别相关推荐

  1. springboot整合阿里云ocr对身份证或通用文字进行识别提取

    学习目标: 十分钟学会使用阿里云ocr识别.身份证信息.通用文字.等 环境准备: 创建阿里云账户 开通ocr服务 配置appcode 第一步: 购买对应服务:ocr服务链接 第二步: 导入依赖 < ...

  2. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  3. SpringBoot整合——阿里云对象存储(OSS)

    SpringBoot整合--阿里云对象存储 1 OSS介绍 在开发应用的过程中,我们经常会有用户需要实名认证之后才能访问的需求. 用户认证需要上传证件图片.首页轮播也需要上传图片,因此我们要做文件服务 ...

  4. SpringBoot整合阿里云视频点播

    文章目录 SpringBoot整合阿里云视频点播 1.准备工作 2.服务端SDK的使用 2.1 导入依赖 2.2 初始化类 2.3 创建读取公共常量的工具类 2.4 获取视频播放地址 2.5 获取视频 ...

  5. SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)

    前言 网上关于实操性的文章普遍大部分都记录不全,要么只记录重点部分,对于刚学习的小伙伴来说看起来是比较困难的 所以,基于这一点. 该文章会详细介绍使用SpringBoot整合阿里云短信服务的每一步过程 ...

  6. SpringBoot整合阿里云OSS

    文章目录 SpringBoot整合阿里云OSS 1.准备工作 1.1 开通"对象存储OSS"服务 1.2 创建Bucket 1.3 创建RAM子用户 2.SpringBoot整合阿 ...

  7. springboot整合阿里云oss上传的方法示例

    这篇文章主要介绍了springboot整合阿里云oss上传的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 OSS申请和 ...

  8. SpringBoot整合阿里云OSS上传文件

    一.需求分析 文件上传是一个非常常见的功能,就是通过IO流将文件写到另外一个地方,这个地方可以是项目下的某个文件夹里,或者是本地电脑某个盘下面,还可以是云服务OSS里面,这里就是我要讲到的OSS,我写 ...

  9. 一小时学会使用SpringBoot整合阿里云SMS短信服务

    1. 登录阿里云进入控制台 进入阿里云控制台,https://home.console.aliyun.com/在个人头像位置点击进入AccessKey管理: 2. 创建用户和用户组 创建用户组 添加完 ...

最新文章

  1. 团体程序设计天梯赛-练习集-L1-044. 稳赢
  2. Microbiome:扩增子检测环境样本单细胞真核生物和寄生虫的新方法
  3. Android Donut SDK 1.6r1 今日发布
  4. Mr.J--蓝桥杯--去注释
  5. mysql不支持-_MySQL不支持的特性
  6. CentOS 通过yum来升级php到php5.6,yum upgrade php 没有更新包怎么办?
  7. java 类注释标准_Java 标准注释
  8. 微信打飞机游戏思路复习
  9. Java校园二手交易平台【计算机毕业设计】
  10. ucfirst() 函数
  11. axure 自学入门教程
  12. mysql_stmt_precheck_COM_STMT_PREPARE 1
  13. 向量代数:向量加法、共线与共面
  14. YUV图片查看器以及测试文件(YUV420)
  15. 详细指南!手把手教你上手Tableau软件!
  16. Android RSA加密解密的 工具类的使用
  17. 游戏合作伙伴专题:BreederDAO 与 Mech 一起加入战斗
  18. Unity UGUI 用BMFont工具自制艺术数字字体超超超详细教程(附工具下载链接)
  19. jQuery实现在线选座订座(影院篇)
  20. 光速入门消息队列Kafka

热门文章

  1. 工业自动化新引擎:工业机器人引领制造业转型升级
  2. 一个时间的小工具_更新倒计时功能
  3. vue tinymce 富文本之插入视频
  4. djvu批量转换为pdf的工具和djvu阅读器(附下载链接)
  5. AspUpload组件上传大文件
  6. 最好的家庭教育就是父母以身作则
  7. ipv6地址概述——了解ipv6地址
  8. 【dfs序+树状数组】多次更新+求结点子树和操作,牛客小白月赛24 I题 求和
  9. 半小时搞懂H264 编解码协议
  10. 宅急送快递门事件最新进展006