iOS - Card Identification 银行卡号识别
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 银行卡号识别的更多相关文章
- 图铭Android平台银行卡号识别系统
		随着智能终端(智能手机及平板电脑)及移动通信(3G)的发展,原来运行在PC上的信息系统(如邮件系统.即时通信.网页浏览.协同办公.网络购物.社交网站.博客等)逐渐转移到智能终端设备上.可以预见未来几年 ... 
- 通过银行卡号识别归属银行,php方式
		这个例子不是很全,要做到齐全必须使用数据库字典来索引,而且数据量庞大,建议生产使用时限制几大行就行,直接不支持其他小行.此案例抛砖引玉 /** * 银行卡信息识别相关类 * 把bin号转化为长整形,再 ... 
- [iOS]iOS8可用的识别用户方式(idfa、UUID、idfv)
		本文地址:http://blog.csdn.net/zhaoyabei/article/details/46682765 想要追踪.统计用户,自然离不开用户唯一标识符.这是每一个公司都面临的问题.在历 ... 
- iOS - 长按图片识别图中二维码
		长按图片识别图中二维码: // 长按图片识别二维码 UILongPressGestureRecognizer *QrCodeTap = [[UILongPressGestureRecognizer a ... 
- 基于iOS用CoreImage实现人脸识别
		2018-09-04更新: 很久没有更新文章了,工作之余花时间看了之前写的这篇文章并运行了之前写的配套Demo,通过打印人脸特征CIFaceFeature的属性,发现识别的效果并不是很好,具体说明见文 ... 
- 身份证识别OCR,开启视频模式扫一扫即可识别身份证信息
		文章摘要:身份证识别等证件识别OCR技术在各个行业得到广泛应用,例如:车险移动查勘会用到身份证识别.行驶证识别.车架号识别: 寿险移动展业会用到名片识别.银行卡识别:电信实名制代理网点采集身份证信息会 ... 
- 字符型图片验证码识别完整过程及Python实现
		字符型图片验证码识别完整过程及Python实现 1 摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ... 
- [iOS OpenCV的使用,灰度和二值化]
		看网上方法很多,但版本都不够新,我看了网上一些知识,总结了下,来个最新版Xcode6.1的. 最近主要想做iOS端的车牌识别,所以开始了解OpenCV.有兴趣的可以跟我交流下哈. 一.Opencv的使 ... 
- iOS 使用Touch ID 校验[新增 iOS9 三种错误]
		iOS8后苹果开放了Touch ID的API给开发者,这也给我们的app带来了新的体验.开发者们可使用向第三方应用开放了Touch ID权限的API,以便他们在应用中使用指纹认证来完成用户认证或支付购 ... 
随机推荐
- hibernate 多表查询
			Hibernate主要支持两种查询方式:HQL查询和Criteria查询.前者应用较为广发,后者也只是调用封装好的接口. 现在有一个问题,就是实现多表连接查询,且查询结果集不与任何一个实体类对应,怎么 ... 
- Application Engine
			Exit(1) : Terminate the AE immediately and rollback all DB changes madeexit(0) : Terminate the AE im ... 
- WebBrowser内核指定
			一.背景 这几天在维护公司的一个项目,嗯…到现在七八年没人动过了(也是老古董了),都说N年前的代码碰不得 处处是坑 不能挖坑还得一步一步的填坑,恰好今天就填了一坑 此处作为记录 供以后翻阅,对代码除了 ... 
- python :添加的内容具有之前的功能用delegate绑定事件
			<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ... 
- 山东省第七届ACM省赛------Memory Leak
			Memory Leak Time Limit: 2000MS Memory limit: 131072K 题目描述 Memory Leak is a well-known kind of bug in ... 
- java反射类内容获取
			private void DtoReflect(Object obj, MqDto mqDto) throws Exception { Map map = getMap(mqDto); if(obj= ... 
- Python Locust对指定网站“一键压测”
			[本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ... 
- linux  ‘|’ 与重定向  实例详解
			重定向与管道 ----------小命令大作为 >:重定向标准输入出定向命令 用的最多的就是向某个文件中写入内容 [root@localhost ~]# echo "Hello,wor ... 
- AfxBeginThread中使用updatedata出错
			原因:MFC对象不支持多线程操作,不能供多个线程进程使用,所以尽量不要在线程里面更新界面. 解决办法: 1.将工程改为release 2.使用控件来SetWindowText 3.在线程里面发送消息 ... 
- Using FreeMarker templates (FTL)- Tutorial
			Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ... 
