当前位置: 首页 > news >正文

银行卡OCR识别API实战:3分钟搞定卡号/有效期/发卡行自动提取(附Python/Java/PHP/JS示例)

银行卡OCR识别API实战:3分钟搞定卡号/有效期/发卡行自动提取(附Python/Java/PHP/JS示例)

相关文章推荐

身份证OCR识别API实战发票识别OCR API接入详解2026 OCR API终极评测

一、为什么需要银行卡OCR?

在金融开户、支付绑卡、信用卡申请等场景中,用户需要手动输入16-19位银行卡号、有效期、持卡人姓名等信息,平均耗时超过30秒,且因输入错误导致的业务中断率高达5%-8%

银行卡OCR识别技术的核心价值在于:

  • 效率提升:自动化替代人工录入,识别时间缩短至1秒内,单笔业务处理时间减少90%

  • 准确率提升:将错误率从人工操作的5%以上降低至0.1%以下

  • 用户体验优化:用户拍照即可完成绑卡,OCR绑卡成功率比手动输入高出40%

  • 成本降低:减少人力投入与因错误导致的运营成本

二、银行卡OCR技术原理

银行卡识别接口的本质是OCR模型 + API封装,技术流程分为以下四步:

  1. 图像预处理:倾斜校正、二值化处理、降噪与锐化,解决拍摄角度和光照问题

  2. 文字检测与定位:使用目标检测算法定位卡号区域(16-19位)、有效期区域(MM/YY格式)

  3. 文字识别与后处理:通过CRNN或Transformer模型识别文字,结合Luhn算法校验卡号有效性

  4. 接口封装与输出:将识别结果封装为结构化JSON返回

银行卡OCR API支持借记卡、信用卡、储蓄卡等多种卡类型,覆盖中国银行、工行、农行、建行、招商、中信、光大等各大银行。

三、准备工作

以石榴智能银行卡识别接口API为例,在开始接入之前,你需要:

  1. 注册API账号,获取API Key或Secret Key(注册即送免费测试积分)

  2. 准备一张银行卡图片(手机拍摄即可,建议卡片占图片2/3以上)

  3. 选择开发语言(python、js、C#、java、php均可,自动化脚本语言也可)

📌免费体验入口:支持免费在线体验

📌API文档:API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

📌注册送免费测试积分

四、多语言接入实战

以下代码均以调用银行卡OCR识别API为例,替换YOUR_API_KEYYOUR_SECRET_KEY为你的真实凭证即可运行。

4.1 Python接入代码

# ============================================================================== # 免费在线体验:https://market.shiliuai.com/tools/ocr/bank-card # API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/bank-card-ocr # 支持免费在线体验 # API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等) # ============================================================================== # ----- 配置信息 ----- # 从石榴智能API市场获取API_Key或SECRET_KEY:https://market.shiliuai.com/ API_KEY = "你的API_Key" SECRET_KEY = "你的Secret_Key" # ----- 图片转Base64 ----- def get_base64(file_path): with open(file_path, 'rb') as f: data = f.read() return base64.b64encode(data).decode('utf8') # -*- coding: utf-8 -*- import requests import base64 import json # 请求接口 URL = "https://ocr-api.shiliuai.com/api/bank_card_ocr/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): # 请求头 headers = { 'Authorization': 'APPCODE %s' % appcode, 'Content-Type': 'application/json' } # 请求体 b64 = get_base64(file_path) data = {"image_base64": b64} # 请求 response = requests.post(url=URL, headers=headers, json=data) content = json.loads(response.content) print(content) if __name__=="__main__": appcode = "你的APPCODE" file_path = "本地图片路径" demo(appcode, file_path)

4.2 Java接入代码

// ============================================================================== // 免费在线体验:https://market.shiliuai.com/tools/ocr/bank-card // API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/bank-card-ocr // 支持免费在线体验 // API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等) // // ----- 配置信息 ----- // 从石榴智能API市场获取API_Key或SECRET_KEY:https://market.shiliuai.com/ // ============================================================================== //main.java 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 { // 使用Commons IO简化文件读取 byte[] content = FileUtils.readFileToByteArray(new File(path)); // 使用JDK自带的Base64 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/bank_card_ocr/v1` "; // 请求接口 String appcode = "你的APPCODE"; String imgFile = "本地图片路径"; Map headers = new HashMap<>(); headers.put("Authorization", "APPCODE " + appcode); headers.put("Content-Type", "application/json"); // 请求体 JSONObject requestObj = new JSONObject(); requestObj.put("image_base64", get_base64(imgFile)); String bodys = requestObj.toString(); try (CloseableHttpClient httpClient = HttpClients.createDefault()) { // 创建POST请求 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(); } } }

4.3 PHP接入代码

// ============================================================================== // 免费在线体验:https://market.shiliuai.com/tools/ocr/bank-card // API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/bank-card-ocr // 支持免费在线体验 // API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等) // // ----- 配置信息 ----- // 从石榴智能API市场获取API_Key或SECRET_KEY:https://market.shiliuai.com/ // ============================================================================== //图片转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/bank_card_ocr/v1` "; $appcode = "你的appcode"; $img_path = "图片路径"; $method = "POST"; //请求头 $headers = array(); array_push($headers, "Authorization:APPCODE " . $appcode); array_push($headers, "Content-Type:application/json"); //请求体 $b64 = get_base64($img_path); $data = array( "image_base64" => $b64 ); $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);

4.4 JavaScript(Node.js)接入代码

// ============================================================================== // 免费在线体验:https://market.shiliuai.com/tools/ocr/bank-card // API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/bank-card-ocr // 支持免费在线体验 // API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等) // // ----- 配置信息 ----- // 从石榴智能API市场获取API_Key或SECRET_KEY:https://market.shiliuai.com/ // ============================================================================== //main.java 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 { // 使用Commons IO简化文件读取 byte[] content = FileUtils.readFileToByteArray(new File(path)); // 使用JDK自带的Base64 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/bank_card_ocr/v1` "; // 请求接口 String appcode = "你的APPCODE"; String imgFile = "本地图片路径"; Map headers = new HashMap<>(); headers.put("Authorization", "APPCODE " + appcode); headers.put("Content-Type", "application/json"); // 请求体 JSONObject requestObj = new JSONObject(); requestObj.put("image_base64", get_base64(imgFile)); String bodys = requestObj.toString(); try (CloseableHttpClient httpClient = HttpClients.createDefault()) { // 创建POST请求 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(); } } }

五、返回字段说明

银行卡OCR识别API通常返回以下结构化字段:

字段名类型说明示例
card_numberString银行卡号(16-19位)6225768888888888
expiry_dateString有效期(MM/YY或MM/YYYY)08/2026
bank_nameString发卡行名称招商银行
card_typeString卡片类型借记卡 / 贷记卡
card_nameString卡产品名称招商银行信用卡

六、常见问题与解决方案

Q1:识别准确率能达到多少?

主流银行卡OCR API的识别准确率可达99%以上。针对倾斜、反光、模糊等复杂场景,API会通过图像预处理(倾斜校正、二值化、降噪)提升识别率。

Q2:支持哪些银行卡类型?

支持借记卡、信用卡、储蓄卡,覆盖银联、VISA、MasterCard等主流卡组织。

Q3:图片有什么要求?

建议图片分辨率500×800以上,卡片部分占据图片2/3以上,经Base64编码后不超过10M。支持PNG、JPG、JPEG、BMP格式。

Q4:调用失败了怎么办?

常见原因包括:图片格式不支持、图片过大、非银行卡照片、拍摄角度导致无法识别。建议检查图片格式和大小,确保卡片清晰可见。

七、总结

银行卡OCR识别API能够帮助开发者在3分钟内完成接入,自动提取卡号、有效期、发卡行等关键信息,识别准确率达99%以上,广泛应用于金融开户、支付绑卡、身份认证等场景。

立即体验

  • 🔗免费在线体验:支持免费在线体验

  • 📖完整API文档:API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

  • 🎁注册送免费测试积分

相关阅读

  • 身份证OCR识别API实战:1行代码自动完成实名信息录入

  • 发票识别OCR API接入详解:自动提取发票全字段并接入财务系统

  • 2026 OCR API终极评测:身份证/发票/医疗票据谁更准?

  • 金融开户、酒店自助机、政务一网通:身份证OCR在三大场景的落地实践

http://www.jsqmd.com/news/1168655/

相关文章:

  • JAXRL入门教程:从安装到训练首个连续动作空间智能体
  • 终极指南:如何快速掌握苹果PingFangSC平方字体完整应用
  • STM32与TPA3128D2构建高性能音频系统实战
  • 水印相机防造假验真实测:一张P过的假照片,测出两款工具的真实差距
  • 2026年7月最新武汉天梭官方售后客户服务热线与维修网点地址汇总 - 天梭服务中心
  • 音乐歌词提取工具终极指南:跨平台批量处理完整方案
  • Zotero Duplicates Merger:告别重复文献的智能管家
  • C++ 转义字符深度解析:从 `\12` 到 `\x41` 的 5 种常见错误场景
  • 高压安全隔离技术:ISOM8710与STM32L081CB的工业应用
  • STM32驱动压电蜂鸣器实现工业级声音警报方案
  • 5分钟快速掌握:GBFR-Logs 免费DPS统计神器,实时追踪《碧蓝幻想:Relink》伤害数据
  • 2026合肥家装市场深度解析:十大靠谱装修公司评选及消费指南 - 装修新知
  • Unity粒子系统实战:打造高性能3D雨滴与涟漪交互特效
  • 高端天窗行业选购盘点:亮话天窗品牌优势及避坑指南 - 百航
  • AI大厂面试200问-第四章
  • nvidia/parakeet-unified-en-0.6b高级教程:自定义数据集训练与模型微调完全指南
  • FS-Blog前端技术栈:Bootstrap 4.0 + LayUI + Freemarker模板引擎实战指南
  • AutoRemesher在时尚设计中的应用:如何优化服装模型的拓扑
  • 嵌入式电机控制:UNI-DS v8与PIC18F66K40实战指南
  • Python金融数据分析终极指南:mootdx让通达信数据获取变得简单快速
  • LizzieYzy:围棋AI分析工具如何让你快速掌握围棋精髓
  • PIC18F4525与PAM8904实现嵌入式音频报警系统设计
  • CANN Runtime架构设计文档
  • 2026 北京老红木家具回收、二手红木家具上门回收商家 TOP5 实测测评 - LYL仔仔
  • 热门骨传导耳机实测对比:奢音X9、韶音、南卡、墨觉谁更值得买? - 优企甄选
  • NtyTcp TCP状态机实现:深入理解用户态TCP协议栈工作原理
  • [Python实战] 供应商报价单收上来以后,先用脚本生成比价汇总和缺字段清单
  • Unity集成DeepSeek API实战:流式对话与性能优化全解析
  • 王者风范!法国 2-0 摩洛哥挺进四强,姆巴佩世界杯 20 球封神
  • CSS 混合模式在 UI 视觉效果中的创意应用与性能考量