iOS开发之OCR光学识别储蓄卡以及信用卡

来源:互联网 发布:oracle11g数据库迁移 编辑:程序博客网 时间:2024/04/28 12:18

最近由于公司需要一个扫描银行卡获取卡号的功能,网上找了很多相关的资料,完全扫描银行卡
获取卡号信息的都是价格贵的不得了的,而且仅仅只是授权而已,在此咱退而求次,找到一个可
以扫描信用卡的第三方框架,给大家伙分享一下,只能扫描信用卡……o.0。
框架的名字叫CardIO
下载地址
在这里主要给大家演示一下怎么集成的,各位看官可得注意咯!
我的xcode是7.1版本的,首先是把框架整个拉进自己的工程,然后在
TARGETS—Build Phases—Link Binary With Libraries
里边分别加入下面这几个框架
Accelerate.framework
MobileCoreServices.framework
CoreMedia.framework
AudioToolbox.framework
AVFoundation.framework
再在TARGETS—Build Settings—Other Linker Flags中添加-ObjC-lc++

然后在我们需要调用的VC中导入头文件#import "CardIO.h"#import "CardIOPaymentViewControllerDelegate.h"
加上代理CardIOPaymentViewControllerDelegate

然后是实现的方法

OC版

- (void)viewDidLoad {    [super viewDidLoad];    [CardIOUtilities preload];}//开始调用扫描- (IBAction)begin:(id)sender {    CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self];    [self presentViewController:scanViewController animated:YES completion:nil];}//取消扫描- (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)scanViewController{    [scanViewController dismissViewControllerAnimated:YES completion:nil];}//扫描完成-(void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)info inPaymentViewController:(CardIOPaymentViewController *)scanViewController{    //扫描结果    NSLog(@"Received card info. Number: %@, expiry: %02i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv);    [scanViewController dismissViewControllerAnimated:YES completion:nil];}

SWIFT版

import UIKitclass ViewController: UIViewController, CardIOPaymentViewControllerDelegate {@IBOutlet weak var resultLabel: UILabel!override func viewDidLoad() {    super.viewDidLoad()    CardIOUtilities.preload()}//开始调用扫描@IBAction func scanCard(sender: AnyObject) {    let cardIOVC = CardIOPaymentViewController(paymentDelegate: self)    cardIOVC.modalPresentationStyle = .FormSheet    presentViewController(cardIOVC, animated: true, completion: nil)}//取消扫描func userDidCancelPaymentViewController(paymentViewController: CardIOPaymentViewController!) {    resultLabel.text = "user canceled"    paymentViewController?.dismissViewControllerAnimated(true, completion: nil)}//扫描完成func userDidProvideCreditCardInfo(cardInfo: CardIOCreditCardInfo!, inPaymentViewController paymentViewController: CardIOPaymentViewController!) {    if let info = cardInfo {        let str = NSString(format: "Received card info.\\\\n Number: %@\\\\n expiry: %02lu/%lu\\\\n cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv)        resultLabel.text = str as String    }        paymentViewController?.dismissViewControllerAnimated(true, completion: nil)    }  }


到此就大功告成了,老外封装的东西还是非常给力的,希望可以找到扫描银行卡比较好用的第三方。
最终的效果,识别的非常准确哦

backing.png

博主app上线啦,快点此来围观吧


更多经验请点击

好文推荐:iOS开发内购全套图文教程

版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

0 0
原创粉丝点击