1、CardIO 识别

  • 框架 GitHub 下载地址

  • 配置

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

      	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、在我们需要调用的文件中导入

      	// 导入头文件
      #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. 图铭Android平台银行卡号识别系统

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

  2. 通过银行卡号识别归属银行,php方式

    这个例子不是很全,要做到齐全必须使用数据库字典来索引,而且数据量庞大,建议生产使用时限制几大行就行,直接不支持其他小行.此案例抛砖引玉 /** * 银行卡信息识别相关类 * 把bin号转化为长整形,再 ...

  3. [iOS]iOS8可用的识别用户方式(idfa、UUID、idfv)

    本文地址:http://blog.csdn.net/zhaoyabei/article/details/46682765 想要追踪.统计用户,自然离不开用户唯一标识符.这是每一个公司都面临的问题.在历 ...

  4. iOS - 长按图片识别图中二维码

    长按图片识别图中二维码: // 长按图片识别二维码 UILongPressGestureRecognizer *QrCodeTap = [[UILongPressGestureRecognizer a ...

  5. 基于iOS用CoreImage实现人脸识别

    2018-09-04更新: 很久没有更新文章了,工作之余花时间看了之前写的这篇文章并运行了之前写的配套Demo,通过打印人脸特征CIFaceFeature的属性,发现识别的效果并不是很好,具体说明见文 ...

  6. 身份证识别OCR,开启视频模式扫一扫即可识别身份证信息

    文章摘要:身份证识别等证件识别OCR技术在各个行业得到广泛应用,例如:车险移动查勘会用到身份证识别.行驶证识别.车架号识别: 寿险移动展业会用到名片识别.银行卡识别:电信实名制代理网点采集身份证信息会 ...

  7. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  8. [iOS OpenCV的使用,灰度和二值化]

    看网上方法很多,但版本都不够新,我看了网上一些知识,总结了下,来个最新版Xcode6.1的. 最近主要想做iOS端的车牌识别,所以开始了解OpenCV.有兴趣的可以跟我交流下哈. 一.Opencv的使 ...

  9. iOS 使用Touch ID 校验[新增 iOS9 三种错误]

    iOS8后苹果开放了Touch ID的API给开发者,这也给我们的app带来了新的体验.开发者们可使用向第三方应用开放了Touch ID权限的API,以便他们在应用中使用指纹认证来完成用户认证或支付购 ...

随机推荐

  1. FTP服务器的安装和配置

    FTP服务器的安装和配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本来是想出一个源码安装ftp的教程,但是想想还是算了,如果你自学python有个10天的话你自己就能写一个f ...

  2. Android--RecyclerView的封装使用

    1,用了很长一段时间的RecyclerView,在项目中用的频率也越来越频繁(因为踩得坑也越来越多了),或过头来看,感觉一直在写RecyclerView.Adapter中的三个方法和一个内部类,感觉很 ...

  3. 将HTML5封装成android应用APK文件的几种方法(转载)

    越来越多的开发者热衷于使用html5+JavaScript开发移动Web App.不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数.一方面,用户在使用习惯上,不喜 ...

  4. Python多重装饰器

    多重装饰器,即多个装饰器修饰同一个对象[实际上并非完全如此,且看下文详解] 1.装饰器无参数: >>> def first(func): print '%s() was post t ...

  5. iOS当中一些常见的面试题

    转自各方面..... 一.前言部分 文中的问题多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.iOS9有哪些新特性? 答案: 1)改进了 Siri 基于日期.位置和相簿名称来搜索个人照片和视 ...

  6. uboot命令

    uboot是怎么启动kernel的呢? 先熟悉一下uboot的命令吧. 首先是md, 查看内存. OpenJTAG> md 000000000: ea000014 e59ff014 e59ff0 ...

  7. 阿里云CDN刷新预热接口

    阿里云OSS映射的文件地址需要即时访问到最新数据,需要即时调用CDN的刷新预热类接口 RefreshObjectCaches 刷新接口. 参考官方接口文档资料:https://help.aliyun. ...

  8. 页面Button/Link 传参数

    很多情况下,我们需要在一个标准的页面上添加一个button 或者 是Link, 在点击的过程中想把,一些参数传值到另外一个自定义的页面: 下面这个例子说明是如何操作的 如下图所示,是创建另一个Obje ...

  9. poj3069 Saruman's Army

    http://poj.org/problem?id=3069 Saruman the White must lead his army along a straight path from Iseng ...

  10. ICTCLAS20160405分词系统调试过程

    一.前期准备: 1.下载最新版本的资源包:CTCLAS20160405171043_ICTCLAS2016分词系统下载包 2.下载最新版本的licence:https://github.com/NLP ...