iOS開發之OCR光學識別儲蓄卡以及信用卡

最近由于公司需要一個掃描銀行卡獲取卡號的功能,網上找了很多相關的資料,完全掃描銀行卡

獲取卡號信息的都是價格貴的不得了的,而且僅僅只是授權而已,在此咱退而求次,找到一個可

以掃描信用卡的第三方框架,給大家伙分享一下,只能掃描信用卡......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 UIKit

class 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

推薦一款學習iOS開發的app_____|______| | 傳送門

更多經驗請點擊

技術交流群:534926022(免費) 511040024(0.8/人付費)
好文推薦:iOS開發內購全套圖文教程

版權歸?Bison所有 如需轉載請保留原文超鏈接地址!否則后果自負!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容