Card Identification 银行卡号识别

1、CardIO 识别

  • 框架 GitHub 下载地址

  • 配置

    • 1、把框架整个拉进自己的工程,然后在 TARGETS => Build Phases => Link Binary With Libraries 里边分别加入下面这几个框架。

      1
      2
      3
      4
      5
      Accelerate.framework
      MobileCoreServices.framework
      CoreMedia.framework
      AudioToolbox.framework
      AVFoundation.framework

    • 2、在TARGETS => Build Settings => Other Linker Flags 中添加 -ObjC 和 -lc++ 。

    • 3、在 iOS8 + 系统中使用相机需要在 Info.plist 中添加 Privacy - Camera Usage Description,并设置其值。

    • 4、在我们需要调用的文件中导入

      1
      2
      3
      4
      5
      6
      // 导入头文件
      #import "CardIO.h"
      #import "CardIOPaymentViewControllerDelegate.h

      // 遵守协议
      <CardIOPaymentViewControllerDelegate>
  • 开始扫描银行卡

    1
    2
    3
    4
    5
    [CardIOUtilities preload];

    CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self];

    [self presentViewController:scanViewController animated:YES completion:nil];
  • 取消扫描

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // CardIOPaymentViewControllerDelegate 协议方法
    - (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)paymentViewController {

    [[[UIAlertView alloc] initWithTitle:@"User cancelled sca"
    message:nil
    delegate:nil
    cancelButtonTitle:@"确定" otherButtonTitles:nil, nil] show];

    [self dismissViewControllerAnimated:YES completion:nil];
    }
  • 扫描完成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // CardIOPaymentViewControllerDelegate 协议方法
    - (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)cardInfo inPaymentViewController:(CardIOPaymentViewController *)paymentViewController {

    // 获取扫描结果

    // cardNumber 是扫描的银行卡号,显示的是完整号码,而 redactedCardNumber 只显示银行卡后四位,前面的用 * 代替了,返回的银行卡号都没有空格

    NSString *redactedCardNumber = cardInfo.cardNumber; // 卡号
    NSUInteger expiryMonth = cardInfo.expiryMonth; // 月
    NSUInteger expiryYear = cardInfo.expiryYear; // 年
    NSString *cvv = cardInfo.cvv; // CVV 码

    // 显示扫描结果
    NSString *msg = [NSString stringWithFormat:@"Number: %@\n\n expiry: %02lu/%lu\n\n cvv: %@", [self dealCardNumber:redactedCardNumber], expiryMonth, expiryYear, cvv];
    [[[UIAlertView alloc] initWithTitle:@"Received card info" message:msg delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil] show];

    [self dismissViewControllerAnimated:YES completion:nil];
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // 对银行卡号进行每隔四位加空格处理,自定义方法
    - (NSString *)dealCardNumber:(NSString *)cardNumber {

    NSString *strTem = [cardNumber stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *strTem2 = @"";

    if (strTem.length % 4 == 0) {

    NSUInteger count = strTem.length / 4;
    for (int i = 0; i < count; i++) {
    NSString *str = [strTem substringWithRange:NSMakeRange(i * 4, 4)];
    strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];
    }

    } else {

    NSUInteger count = strTem.length / 4;
    for (int j = 0; j <= count; j++) {

    if (j == count) {
    NSString *str = [strTem substringWithRange:NSMakeRange(j * 4, strTem.length % 4)];
    strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];
    } else {
    NSString *str = [strTem substringWithRange:NSMakeRange(j * 4, 4)];
    strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];
    }
    }
    }

    return strTem2;
    }
  • 效果

    cardid4 cardid5

文章目录
  1. 1. 1、CardIO 识别
隐藏目录
  • EulerOS 欧拉
  • HarmonyOS 鸿蒙
  • SSL 认证
  • 微信登录
  • 消息中间件
  • 搜索引擎技术
  • QR Code
  • WebSocket
  • Linux
  • Docker
  • Nginx
  • Redis
  • Git
  • Intellij IDEA
  • Eclipse
  • ZooKeeper
  • Maven
  • Dubbo
  • Spring Security
  • Spring Cloud
  • Spring Boot
  • Spring MVC
  • Spring
  • Struts
  • Mybatis
  • Hibernate
  • 前后端分离
  • MVC
  • Listener
  • Filter
  • Thymeleaf
  • JSP
  • Servlet
  • Tomcat
  • HTTP 协议
  • Node.js
  • Vue
  • React
  • BootStrap
  • jQuery
  • Ajax
  • JSON
  • JavaScript
  • CSS
  • HTML DOM
  • HTML
  • Swagger
  • Chart.js
  • Webpack
  • Shiro
  • Quartz
  • Lombok
  • Jsoup
  • Hutool
  • Junit
  • Log4j
  • Java XML
  • Java 脚本
  • Java JavaFX 线
  • Java JPA 实体管理器
  • Java JSF 基本标签
  • Java 反射
  • Java 注解
  • Java JVM
  • Java GUI 图形用户界面
  • Java Regex 正则表达式
  • Java Lambda 表达式
  • Java JDBC 数据库连接
  • Java 网络编程
  • Java 多线程
  • Java 泛型
  • Java 异常处理
  • Java I/O 流
  • Java 集合
  • Java 日期
  • Java 数字
  • Java 枚举
  • Java 数组
  • Java 字符串
  • Java 控制流程(控制流)
  • Java 操作符(基本运算符)
  • Java 变量(基本数据类型)
  • Java 设计模式
  • Java 面向对象
  • Java 基础知识
  • Go 基础知识
  • Python 基础知识
  • Vue 基础知识
  • React 基础知识
  • jQuery 基础知识
  • Ajax 基础知识
  • AppleScript 基础知识
  • TypeScript 基础知识
  • Chart.js
  • JSON
  • JavaScript 基础知识
  • Foundation Equalizer 均衡器
  • Foundation Joyride 功能向导
  • Foundation 模态框
  • Foundation 提示框
  • Foundation 滑块
  • Foundation 开关
  • Foundation 表单
  • Foundation 麦哲伦导航
  • Foundation 侧边栏导航
  • Foundation 顶部导航栏
  • Foundation 价格表
  • Foundation 分页
  • Foundation 选项卡
  • Foundation 列表
  • Foundation 下拉菜单
  • Foundation 图片
  • Foundation 面板
  • Foundation 进度条
  • Foundation 提醒框
  • Foundation 标签
  • Foundation 图标
  • Foundation 按钮
  • Foundation 表格
  • Foundation 文本
  • Foundation 网格系统
  • Foundation CSS 样式
  • Foundation 基础知识
  • Bootstrap4 多媒体对象
  • Bootstrap4 滚动监听
  • Bootstrap4 弹出框
  • Bootstrap4 提示框
  • Bootstrap4 模态框
  • Bootstrap4 轮播
  • Bootstrap4 表单
  • Bootstrap4 导航
  • Bootstrap4 折叠
  • Bootstrap4 下拉菜单
  • Bootstrap4 卡片
  • Bootstrap4 列表组
  • Bootstrap4 分页
  • Bootstrap4 进度条
  • Bootstrap4 徽章
  • Bootstrap4 按钮
  • Bootstrap4 信息提示框
  • Bootstrap4 Jumbotron 超大屏幕
  • Bootstrap4 图像形状
  • Bootstrap4 表格
  • Bootstrap4 颜色
  • Bootstrap4 文字排版
  • Bootstrap4 网格系统
  • Bootstrap4 小工具
  • Bootstrap4 弹性布局
  • Bootstrap4 基础知识
  • Bootstrap 附加导航(Affix)插件
  • Bootstrap 轮播(Carousel)插件
  • Bootstrap 折叠(Collapse)插件
  • Bootstrap 按钮(Button)插件
  • Bootstrap 警告框(Alert)插件
  • Bootstrap 弹出框(Popover)插件
  • Bootstrap 提示工具(Tooltip)插件
  • Bootstrap 标签页(Tab)插件
  • Bootstrap 滚动监听(Scrollspy)插件
  • Bootstrap 下拉菜单(Dropdown)插件
  • Bootstrap 模态框(Modal)插件
  • Bootstrap 过渡效果(Transition)插件
  • Bootstrap 插件概览
  • Bootstrap Well
  • Bootstrap 面板
  • Bootstrap 列表组
  • Bootstrap 多媒体对象
  • Bootstrap 进度条
  • Bootstrap 警告
  • Bootstrap 缩略图
  • Bootstrap 页面标题
  • Bootstrap 超大屏幕
  • Bootstrap 徽章
  • Bootstrap 标签
  • Bootstrap 分页
  • Bootstrap 导航栏
  • Bootstrap 输入框组
  • Bootstrap 按钮组
  • Bootstrap 下拉菜单
  • Bootstrap 字体图标
  • Bootstrap 响应式实用工具
  • Bootstrap 辅助类
  • Bootstrap 图片
  • Bootstrap 按钮
  • Bootstrap 表单
  • Bootstrap 表格
  • Bootstrap 代码
  • Bootstrap 排版
  • Bootstrap 网格系统
  • Bootstrap CSS 概览
  • Bootstrap CSS 编码规范
  • Bootstrap HTML 编码规范
  • Bootstrap 基础知识
  • Font Awesome 参考手册
  • Font Awesome 图标
  • Less 快速入门
  • Less 基础知识
  • Sass 导入
  • Sass 函数
  • Sass 继承
  • Sass 混合
  • Sass 嵌套
  • Sass 变量
  • Sass 基础知识
  • CSS Animation 动画
  • CSS 3D Transform 3D转换
  • CSS 2D Transform 2D转换
  • CSS Transition 过渡
  • CSS Gradient 渐变
  • CSS Appearance 用户界面
  • CSS Layout 网页布局
  • CSS 响应式设计
  • CSS Media 媒体类型
  • CSS Pseudo Element 伪元素
  • CSS Pseudo Class 伪类
  • CSS Flex 弹性盒子
  • CSS Float 浮动
  • CSS Align 对齐
  • CSS Overflow 溢出
  • CSS Position 定位
  • CSS Dimension 尺寸
  • CSS Margin 外边距
  • CSS Outline 轮廓
  • CSS Border 边框
  • CSS Padding 填充(内边距)
  • CSS Box Model 盒子模型
  • CSS Page 分页
  • CSS Column 多列
  • CSS Counter 计数器
  • CSS Tooltip 提示工具
  • CSS Dropdown 下拉菜单
  • CSS Navigation 导航栏
  • CSS Button 按钮
  • CSS Form 表单
  • CSS List 列表
  • CSS Table 表格
  • CSS Image 图像
  • CSS Link 链接
  • CSS Text 文本格式
  • CSS Font 字体
  • CSS Background 背景
  • CSS Display / Visibility 显示 与 可见性
  • CSS Selecter 选择器
  • CSS 注释
  • CSS 颜色
  • CSS 单位
  • CSS 函数
  • CSS 听觉
  • CSS 属性
  • CSS 样式表
  • CSS 基础知识
  • XHTML 基础知识
  • HTML DOM
  • HTML WebSocket
  • HTML SSE 服务器发送事件
  • HTML Web Worker 多线程
  • HTML Web Cache 应用程序缓存
  • HTML Web SQL 数据库
  • HTML Web Storage 存储
  • HTML Geolocation 地理定位
  • HTML Drag 和 Drop 拖放
  • HTML MathML 数学标记
  • HTML 视频
  • HTML 音频
  • HTML 插件
  • HTML 多媒体
  • HTML 表单
  • HTML 列表
  • HTML 表格
  • HTML 图像
  • HTML 链接
  • HTML 水平线
  • HTML 折行(换行)
  • HTML 文本格式化
  • HTML 段落
  • HTML 标题
  • HTML 头部
  • HTML 框架
  • HTML 区块/布局
  • HTML 属性
  • HTML 元素(标签)
  • HTML 颜色
  • HTML 脚本
  • HTML 样式
  • HTML 注释
  • HTML Px/Em 换算
  • HTML 网络请求
  • HTML 语言
  • HTML 字符集
  • HTML 代码规范
  • HTML 基础知识
  • Taro
  • 百度智能小程序
  • 支付宝小程序
  • 微信小程序
  • Dart 基础知识
  • Flutter 基础知识
  • Kotlin 基础知识
  • Android 基础知识
  • Docker
  • Mac Nginx 配置
  • Nginx
  • Node Express 框架
  • NVM Node 管理
  • NPM Node 包管理
  • Node 配置
  • Node.js 基础知识
  • RVM Ruby 管理工具
  • Linux
  • Unix
  • 使用 Hexo 写博客
  • 搭建自己的 github.io 博客
  • 网络博客
  • Xcode Command Line Tools
  • Xcode 常用插件
  • Xcode 各版本简介
  • Xcode 常用设置
  • Xcode 常用快捷键
  • Markdown 轻量级标记语言
  • Homebrew macOS 包管理
  • Mac Vim 编辑器
  • Mac 终端命令
  • Mac 下查看网络端口占用情况
  • Mac SIP 权限设置
  • Mac 安装任何来源的文件
  • Mac 重建 Spotlight 索引
  • Mac 常用设置
  • Mac 常用快捷键
  • SVN 基础(集中式版本控制系统)
  • Git 分支
  • Git 别名
  • Git 打标签
  • Git 远程仓库
  • Git 撤消操作
  • Git 查看提交历史
  • Git 提交更新到仓库
  • Git 获取仓库
  • Git 配置
  • Git 安装
  • Git 基础(分布式版本控制系统)
  • 版本控制系统
  • XMPP 的使用
  • Mac XMPP Openfire 服务器配置
  • 自定义 iPhone 铃声
  • Gitbook 命令行工具
  • Mac Eclipse Tomcat 配置
  • Mac Tomcat 配置
  • Tomcat
  • Mac Apache ZooKeeper 配置
  • Mac Apache Maven 配置
  • Mac Apache WebDav 配置
  • Mac Apache 配置
  • Apache
  • Paros 网络抓包工具
  • Charles 网络抓包工具
  • Firefox 网络调试工具
  • Postman 网络调试工具
  • Digital Color Meter 颜色值提取工具
  • App Icon Gear App 图标制作工具
  • GitHub Desktop 代码库管理工具
  • SourceTree 代码库管理工具
  • 达梦
  • Redis
  • MongoDB
  • Oracle
  • CoreData
  • HyperSQL(HSQLDB)
  • SQLite
  • MySQL 触发器
  • MySQL 流程控制
  • MySQL 索引
  • MySQL 字符集
  • MySQL 存储引擎
  • MySQL 常用函数
  • MySQL 中的运算符
  • MySQL 支持的数据类型
  • MySQL 服务常用操作命令
  • Mac MySQL 数据库管理
  • Mac MySQL 数据库配置
  • MySQL
  • SQL DCL 数据控制语句
  • SQL DML 数据操纵语句
  • SQL DDL 数据定义语句
  • SQL 数据库结构化查询语言
  • Swift 语言新特性
  • Swift Struct 结构体
  • Swift Enum 枚举底层(转载)
  • Swift Enum 枚举
  • Swift 静态派发和动态派发
  • Swift 弱引用与无主引用
  • Swift 循环引用
  • Swift ARC 自动引用计数
  • Swift 值类型和引用类型的内存管理
  • Swift 栈和堆
  • Swift 命令行输入输出
  • Swift 类型桥接
  • 在 OC 中调用 Swift 代码
  • 在 Swift 中调用 OC 代码
  • Swift 与 C 语言混合编程
  • Swift Precondition 预处理
  • Swift Assert 断言
  • Swift Defer 延迟调用
  • Swift Guard 守护
  • Swift 异常处理
  • Swift SingleClass 单例类
  • Swift 柯里化
  • Swift 模式匹配
  • Swift 同构与异构
  • Swift 类型嵌套
  • Swift 类型检查与类型转换
  • Swift 构造与析构
  • Swift 协议
  • Swift 扩展
  • Swift 多态
  • Swift 继承
  • Swift 封装
  • Swift 方法
  • Swift 属性
  • Swift 对象
  • Swift 类
  • Swift 面向对象
  • Swift available 平台判断
  • Swift 类型转换
  • Swift 类型别名
  • Swift 值类型/引用类型
  • Swift 可选型
  • Swift 泛型
  • Swift 下标脚本
  • Swift 闭包
  • Swift 函数
  • Swift 控制流
  • Swift 表达式
  • Swift 基本运算符
  • Swift 基本数据类型
  • Swift 基础知识
  • HomeKit 智能家居
  • symbolicatecrash App Bug 分析工具
  • DSYMTools App Bug 分析工具
  • Xcode dSYM 文件
  • Build 调试
  • Project 项目
  • HealthKit 健康
  • Widget 小部件
  • Regex 正则表达式
  • App 真机测试
  • PackIpa App 打包
  • App 上架审核被原因拒总结
  • AppStores App 上架
  • Bitcode App 瘦身中间码
  • Card Identification 银行卡号识别
  • QRCode 二维码
  • Contacts 通讯录
  • Phone 电话
  • App 与外设间的通信方式
  • App 间的通信方式
  • App 应用
  • Drawer 抽屉式架构
  • Frame 项目架构
  • Localizable 国际化
  • Adapter iOS 适配
  • File Archive/UnArchive 文件压缩/解压
  • PairProgramming 结对编程
  • CodeReview 代码评审
  • Analyze 静态分析
  • UnitTests 单元测试
  • Safe 加密安全
  • ApplePay 支付
  • WXPay 微信支付
  • AliPay 支付宝支付
  • UPPay 银联支付
  • GATT Profile 简介
  • MFi 认证
  • Bluetooth 蓝牙
  • 3DTouch 3D 触摸
  • FaceID 面容识别
  • TouchID 指纹识别
  • AVPlayer 音视频播放
  • MPMoviePlayer 视频播放
  • AudioServicesPlay 短频音效播放
  • AVAudioPlayer 音频播放
  • Photo Album 图片/相册管理
  • VIPER 架构模式
  • MVVM 架构模式
  • MVP 架构模式
  • MVC 架构模式
  • KVO 键值观察
  • Notification 通知
  • Block 代码块
  • Delegate 代理
  • KVC 键值编码
  • Threads 多线程
  • Copy 拷贝
  • RunTime 运行时
  • RunLoop 运行循环/消息循环
  • Cocoa iOS 开发体系
  • Carthage iOS 开源库管理
  • CocoaPods iOS 开源库管理
  • Bundle 资源文件包
  • Library 库
  • EaseMob 环信的使用
  • IM 即时通讯
  • CFNetwork 的使用
  • WebSocket 的使用
  • AsyncSocket 的使用
  • CFSocket 的使用
  • BSDSocket 的使用
  • Socket 网络套接字
  • Count 统计
  • Share 分享/第三方登录
  • Pusher 消息推送测试工具
  • Easy APNs Provider 消息推送测试工具
  • Push Notification 通知推送
  • GoogleMap 谷歌地图
  • TecentMap 腾讯地图
  • GaodeMap 高德地图
  • BaiduMap 百度地图
  • MKMapView 地图
  • GeoCoder 地理编码
  • CoreLocation 定位
  • RefreshControl 刷新数据
  • ImageCache 网络图片缓存
  • LocalCache 本地数据缓存
  • Sign up/in 注册/登录
  • Alamofire 网络请求
  • AFNetworking 网络请求
  • ASIHTTPRequest 网络请求
  • NSURLSession 网络请求
  • NSURLConnection 网络请求
  • NetRequest 网络数据请求
  • PList 数据解析
  • XML 数据解析
  • JSON 数据解析
  • PassData 页面传值
  • CoreMotion 加速度传感器
  • Core Animation 核心动画的使用
  • CALayer 绘图层
  • UIImageView 动画
  • UIView 动画
  • Core Animation 核心动画
  • Quartz 2D 贝塞尔曲线
  • Quartz 2D 画板绘制
  • Quartz 2D 手势锁绘制
  • Quartz 2D 手势截屏绘制
  • Quartz 2D 下载进度按钮绘制
  • Quartz 2D 第三方框架 Charts 绘制图表
  • Quartz 2D 二维绘图
  • AutoLayout 自动布局
  • Xib
  • UIStoryboard 故事板
  • UIPasteboard 剪切板
  • UITouch 触摸
  • UIGestureRecognizer 手势检测
  • UIDevice 设备
  • UIColor 颜色
  • UIRefreshControl 数据刷新控制器
  • UIMenuController 菜单视图控制器
  • UIAlertController 警告视图控制器
  • UISearchController 搜索视图控制器
  • UIActivityViewController 分享视图控制器
  • UIImagePickerController 图片选择视图控制器
  • UISplitViewController 分割视图控制器
  • UIPageViewController 页视图控制器
  • UICollectionViewController 网格视图控制器
  • UITabBarController 分栏视图控制器
  • UINavigationController 导航视图控制器
  • UITableViewController 表格视图控制器
  • UIViewController 视图控制器
  • UIDatePicker 日期选择器
  • UIStepper 微调器
  • UISlider 滑块
  • UISegmentedControl 选择控件
  • UISwitch 开关按钮
  • UIButton 按钮
  • UITextField 文本输入框
  • UIControl 控制器
  • UIToolbar 工具条
  • UITextView 多行文本控件
  • UIScrollView 滚动视图
  • UIWebView 网页控件
  • UIImageView 图像控件
  • UIActivityIndicatorView 风火轮
  • UIPickerView 选择框
  • UIActionSheet 操作表
  • UIAlertView 警告框
  • UIProgressView 进度条
  • UILabel 跑马灯、弹幕
  • UILabel 数字动态变化
  • UILabel 标签
  • UIView 视图
  • UIWindow 窗口
  • UIApplication 应用
  • UIKit 框架
  • NSStream 文件流
  • NSCache 缓存
  • Sandbox 数据持久化
  • SQLite 数据库存储
  • NSFileManager 文件管理
  • PList 数据存储
  • NSUserDefaults 数据存储
  • NSKeyedArchiver 数据归档
  • NSNull 空值
  • NSProcessInfo 系统进程信息
  • NSTimer 定时器
  • NSEnumerator 迭代器
  • NSDate 时间
  • NSLocale 本地化信息
  • NSTimeZone 时区
  • NSCalendar 日历
  • NSNumber 数字
  • NSValue 值
  • NSData 数据
  • NSDictionary 字典
  • NSSet 集合
  • NSArray 数组
  • NSString 字符串
  • NSRect 位置和尺寸
  • NSSize 尺寸
  • NSPoint 位置
  • NSRange 范围
  • Foundation 框架
  • OC 语言新特性
  • OC Struct 结构体
  • OC Enum 枚举
  • OC 与 Swift 语言混合编程
  • OC 与 C 语言混合编程
  • OC 术语表
  • OC 异常处理
  • OC 内存管理
  • OC SingleClass 单例类
  • OC Category 分类
  • OC 面向对象语法
  • OC Block 代码块
  • OC 基本语法
  • C 语言应用
  • C 语言基本语法