1、CardIO 识别

  • 框架 GitHub 下载地址

  • 配置

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

          Accelerate.frameworkMobileCoreServices.frameworkCoreMedia.frameworkAudioToolbox.frameworkAVFoundation.framework

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

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

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

          // 导入头文件#import "CardIO.h"#import "CardIOPaymentViewControllerDelegate.h// 遵守协议<CardIOPaymentViewControllerDelegate>
  • 开始扫描银行卡

        [CardIOUtilities preload];CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self];[self presentViewController:scanViewController animated:YES completion:nil];
  • 取消扫描

        // 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];}
  • 扫描完成

        // 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];}
        // 对银行卡号进行每隔四位加空格处理,自定义方法- (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;}
  • 效果

iOS - Card Identification 银行卡号识别相关推荐

  1. 银行卡号识别python_银行卡号识别 基于 OpenCV 光学字符识别(OCR)

    银行卡号识别 基于 OpenCV 光学字符识别(OCR) 今天的博客文章是我们最近关于光学字符识别(OCR)和计算机视觉的系列的延续. 在之前的博客文章中,我们学习了如何安装Tesseract二进制文 ...

  2. 安卓Android、iOS移动端车牌识别OCR技术原理

    核心内容:移动端车牌识别.安卓端车牌识别.Android车牌识别.iOS端车牌识别.OCR识别技术 一.安卓Android.iOS移动端车牌识别OCR技术识别流程 安卓Android.iOS移动端车牌 ...

  3. OCR-基于OpenCV、Tesseract的银行卡号识别

    title: 'OCR:基于OpenCV.Tesseract的银行卡号识别' type: categories date: 2016-12-01 16:50:30 categories: OC tag ...

  4. 跨平台Android和IOS百度语音在线识别原生插件

    一.插件推荐 跨平台Office文档.图片在线预览,视频播放原生插件 Android和IOS图片在线预览,视频播放原生插件 跨平台Android和IOS百度OCR文字识别.证卡识别.票据识别原生插件 ...

  5. iOS开发-面部距离识别 Vision 护眼模式 儿童防近视功能

    iOS开发-面部距离识别 Vision 护眼模式 儿童防近视功能 前言-基于Vision和CIDetector 举例 大概思路 API 使用 Demo 前言-基于Vision和CIDetector i ...

  6. 图铭Android平台银行卡号识别系统

    随着智能终端(智能手机及平板电脑)及移动通信(3G)的发展,原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.社交网站.博客等)逐渐转移到智能终端设备上.可以预见未来几年 ...

  7. iOS平台下人脸识别的实现

    iOS平台下人脸识别的实现 电子科技大学 格拉斯哥学院 林浩阳 2017200605028 1.背景介绍 2.Ada Boost人脸检测算法 3.改进的人脸识别算法 4.系统设计与实现 5.前景展望 ...

  8. 银行卡号识别Bank Card Rec 主要功能接口说明

    Bank Card Rec 主要功能接口说明: 说明:如果需要其他接口都可以封装出来 主接口 /*调用识别之前先初始化一次*/ int init_all (); /* 调用识别,读取图像版本函数: p ...

  9. iOS根据银行卡号识别银行

    + (NSString *)getBankName:(NSString*) cardId{//发卡行.卡种名称NSArray *bankName = @[@"邮储银行·绿卡通", ...

最新文章

  1. 面试前赶紧看了5道Python Web面试题,Python面试题No17
  2. PHP ftp_mkdir 函数
  3. 5G商用元年!最新鲜热辣的使用指南看这里
  4. python定义私有变量的方法_Python面向对象程序设计之私有变量,私有方法原理与用法分析...
  5. [MySQL优化案例]系列 -- OPTIMIZE的威力
  6. java接口测试工具_这 5 款实用性能测试工具,你会如何选择?
  7. java string.format_如果性能很重要,我应该使用Java的String.format()吗?
  8. [C++] 构造函数 which is of non-class type
  9. 【Oracle】SCOPE=MEMORY|SPFILE|BOTH
  10. java方法参数传递机制
  11. 计算机考研如何选?中国人民大学学长两年考研经验+权威预测
  12. Seat分布式事务学习
  13. 手机平板功放芯片BCT8933,PINtoPIN替换AW8733
  14. 华为android系统管理,安卓系统即将迎来封闭管理?华为首先发起,网友:流畅度更重要...
  15. ForestBlog博客源码学习笔记
  16. SECS/GEM通信协议学习之报文
  17. ie测试兼容的软件,IE系列浏览器兼容性测试点整理
  18. 【2018 CodeM】资格赛---下单
  19. 华为鸿蒙系统专利申请,华为“鸿蒙”系统进一步推进,UI界面获得专利,谷歌慌了!...
  20. 电梯黑板签到的测试用例

热门文章

  1. bootstrap treetable 树形网格,动态扩展,连数据库
  2. MSSQL日期格式转换函数(使用CONVERT)
  3. IDEA中启动tomcat
  4. hadoo分布式安装
  5. (8)Powershell中变量的定义和使用
  6. Python asyncio库的学习和使用
  7. apache2.4.18中启用h2c
  8. 90.根据指令修改发往上游的请求
  9. instanceof java 原理_JAVA中 instanceof 和 getClass() 区别小结
  10. ominigraffle 模板_商河盖梁模板安装