当前位置: 首页 > 工具软件 > card.io > 使用案例 >

扫描银行卡,获取银行卡号 - Card.io

吕德惠
2023-12-01

实现功能:通过扫描银行卡,获取银行卡号。

在网上搜过后,选用了card.io这个SDK,其他的都要收费,不过这个sdk只能扫描有凸起的银行卡,平面字体无法识别。

过程如下:

(1)下载Card.io

Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.io添加到自己的应用当中。可以在https://github.com/paypal/PayPal-iOS-SDK下载最新的SDK

(2)添加到项目里

1、将下载的SDK包里名为CardIO的文件拖到工程里,在TARGETS-Build Phases - Link Binary With Librarys添加下面依赖库
* Accelerate
* AVFoundation
* AudioToolbox
* CoreMedia
* MobileCoreServices

并且保证Build Settings里面这两项都是YES:
- Enable Modules (C and Objective-C)
- Link Frameworks Automatically

2、在TARGETS-Build Settings添加 -lc++到Other Linker Flags

(3)使用
我是把它作为一个viewController类使用

导入 #import “CardIO.h”

遵循协议CardIOPaymentViewControllerDelegate

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [CardIOUtilities preload];
}

- (void)scanButtonAction{
    CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:self];
    scanViewController.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:scanViewController animated:YES completion:nil];
}

pragma mark - CardIOPaymentViewControllerDelegate

//扫描完成

- (void)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)info inPaymentViewController:(CardIOPaymentViewController *)paymentViewController {
    NSLog(@"Scan succeeded with info: %@", info);
// Do whatever needs to be done to deliver the purchased items.
    [self dismissViewControllerAnimated:YEScompletion:nil];
    self.infoLabel.text = info.cardNumber;
    NSString *infoText = [NSStringstringWithFormat:@"Received card info. Number: %@, expiry: %02lu/%lu, cvv: %@.", info.redactedCardNumber, (unsignedlong)info.expiryMonth, (unsignedlong)info.expiryYear, info.cvv];
    NSLog(@"%@", infoText);
}

//用户取消扫描

- (void)userDidCancelPaymentViewController:(CardIOPaymentViewController *)paymentViewController {
    NSLog(@"User cancelled scan");
    [self dismissViewControllerAnimated:YEScompletion:nil];
}
 类似资料: