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;
        }
  • 效果

时间: 2024-09-25 10:02:31

iOS - Card Identification 银行卡号识别的相关文章

iOS开发之银行卡号识别_IOS

iOS open cv 大体有个思路 1. 捕捉银行卡图像,截取到字符区域 2. 最捕捉到的图像进行处理,去噪比,二值化, 3. 将银行卡号码区域进行切割划分,然后对比字符 opencv 安装失败,直接下载拖进 xcode 的话,会报以下错误 这里是 详细解决链接地址 Undefined symbols for architecture x86_64: "_jpeg_free_large", referenced from: _free_pool in opencv2(jmemmgr.

银行卡识别SDK亮相 扫清支付最后障碍

本文讲的是银行卡识别SDK亮相 扫清支付最后障碍,双十一的余波未散,571亿这一数字依旧在眼前闪烁.对于关注中国电子商务发展的人来说,双十一的每个记录都值得骄傲,但记录总要被打破.随着中国电子商务交易额屡创新高,互联网已经成为了重要的消费"战场".除了丰富多样的商品供用户选择之外,更重要的是,电子商务借助互联网打通了支付渠道,让花钱更容易.要知道,缔造双十一不仅仅是天猫.淘宝,更离不开支付宝平台. 网络支付障碍犹存 手机支付.网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付

iOS Touch ID 简易开发教程

基础知识 支持系统和机型 iOS系统的指纹识别功能最低支持的机型为iPhone 5s,最低支持系统为iOS 8,虽然安装iOS 7系统的5s机型可以使用系统提供的指纹解锁功能,但由于API并未开放,所以理论上第三方软件不可使用. 依赖框架 LocalAuthentication.framework #import <LocalAuthentication/LocalAuthentication.h> 注意事项 做iOS 8以下版本适配时,务必进行API验证,避免调用相关API引起崩溃. 使用类

【独家】一文读懂文字识别(OCR)

前言 文字识别是计算机视觉研究领域的分支之一,归属于模式识别和人工智能,是计算机科学的重要组成部分 本文将以上图为主要线索,简要阐述在文字识别领域中的各个组成部分. 一 ,文字识别简介 计算机文字识别,俗称光学字符识别,英文全称是Optical Character Recognition(简称OCR),它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受.人又可以理解的格式.OCR技术是实现文字高速录入的一项关键技术. 在OCR技术中,印刷体文字识别是开展最早,

简易教程:教你如何将iPad mini快速升级到iOS 7 beta2

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 近日,苹果发布了iOS 7 beta2版,这次的版本不仅修正了此前iOS 7 beta版中的诸多bug并添加了新功能,更令人兴奋的是iOS 7 beta2增加了对iPad设备的支持,使得广大iPad用户也可以体验到iOS 7的魅力.笔者第一时间将自己的iPad mini升级到了iOS 7,但这过程中也遇到了一些问题,因此在这里向大家分

如何判断人脸识别是否准确?SeetaFace助你一臂之力|AI科技评论

对不同的人进行区分是很多智能系统的必备能力.所谓的人脸识别技术也是为了实现此目的开发出来的,通过对人脸的光学成像来感知人.识别人.经过几十年的研发积累,特别是近年来深度学习技术的涌现,人脸识别取得了长足的进步,在安防.金融.教育.社保等领域得到了越来越多的应用,也成为计算机视觉领域最为成功的分支领域之一. 然而,人脸识别并非是完全成熟的技术,离公众期望的全面应用尚有距离,仍然需要学术界.工业界的共同努力.为此,整个人脸识别社区需要有基准(Baseline)系统,而且基准系统的水平显然会极大影响着

什么是SeetaFace开源人脸识别引擎?

雷锋网按:本文作者VIPL_Face 区分不同的人是很多智能系统的必备能力.为实现此目的,一种可能的技术手段是通过对人脸的光学成像来感知人.识别人,即所谓的人脸识别技术.经过几十年的研发积累,特别是近年来深度学习技术的涌现,人脸识别取得了长足的进步,在安防.金融.教育.社保等领域得到了越来越多的应用,成为计算机视觉领域最为成功的分支领域之一. 然而,人脸识别并非完全成熟的技术,离公众期望的全面应用尚有距离,还需要学术界.工业界的共同努力.为此,整个人脸识别社区需要有基准(Baseline)系统,

什么是 SeetaFace 开源人脸识别引擎

区分不同的人是很多智能系统的必备能力.为实现此目的,一种可能的技术手段是通过对人脸的光学成像来感知人.识别人,即所谓的人脸识别技术.经过几十年的研发积累,特别是近年来深度学习技术的涌现,人脸识别取得了长足的进步,在安防.金融.教育.社保等领域得到了越来越多的应用,成为计算机视觉领域最为成功的分支领域之一. 然而,人脸识别并非完全成熟的技术,离公众期望的全面应用尚有距离,还需要学术界.工业界的共同努力.为此,整个人脸识别社区需要有基准(Baseline)系统,而且基准系统的水平显然会极大影响着该领

Android中使用orc实现文字识别实例

一.什么是orc? 引用百度百科的介绍,指利用光学字符识别(ORC全称:Optical Character Recognition)技术,将图片.照片上的文字内容,直接转换为可编辑文本,支持JPG.PNG.GIF.BMP.DOC等图片格式.简单一句话,就是可以把图片上的文字识别出来.应用的场景有很多,比如说:身份证号码识别,银行卡号识别等等. 二.效果展示 这里笔者实现的仅仅是一个效果,实际使用可能需要对它进行训练以提高识别率,第一次做gif图片,效果不是很好 三.开始集成 Github上面已经