最近由于公司需要一个扫描银行卡获取卡号的功能,网上找了很多相关的资料,完全扫描银行卡
获取卡号信息的都是价格贵的不得了的,而且仅仅只是授权而已,在此咱退而求次,找到一个可
以扫描信用卡的第三方框架,给大家伙分享一下,只能扫描信用卡......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版
代码语言:javascript复制- (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: i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv);
[scanViewController dismissViewControllerAnimated:YES completion:nil];
}
SWIFT版
代码语言:javascript复制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: lu/%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所有 如需转载请保留原文超链接地址!否则后果自负!