博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之OCR光学识别储蓄卡以及信用卡
阅读量:3784 次
发布时间:2019-05-22

本文共 2653 字,大约阅读时间需要 8 分钟。

最近由于公司需要一个扫描银行卡获取卡号的功能,网上找了很多相关的资料,完全扫描银行卡获取卡号信息的都是价格贵的不得了的,而且仅仅只是授权而已,在此咱退而求次,找到一个可以扫描信用卡的第三方框架,给大家伙分享一下,只能扫描信用卡......o.0。框架的名字叫CardIO


下载地址:https://github.com/AllLuckly/card.io-iOS-SDK


在这里主要给大家演示一下怎么集成的,各位看官可得注意咯!


我的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)
}
}


到此就大功告成了,希望可以找到扫描银行卡比较好用的第三方。最终的效果,识别的非常准确哦

转载地址:http://sxevn.baihongyu.com/

你可能感兴趣的文章
格网编码查询方案在项目运用上的进一步探索
查看>>
BUAA-OO-2019 第三单元总结
查看>>
Matlab策略模式
查看>>
架构整洁之道
查看>>
支付渠道路由系统进化史
查看>>
行为型模式:解释器模式
查看>>
深入理解设计模式(22):享元模式
查看>>
spring boot
查看>>
Angular框架
查看>>
行为型模式:模板方法
查看>>
spring cloud之Feign的使用
查看>>
Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
查看>>
LeetCode刷题 --杂篇 --数组,链表,栈,队列
查看>>
840. 模拟哈希表(模板)
查看>>
《算法》笔记 17 - 数据压缩
查看>>
Qt Installer Framework翻译(5-2)
查看>>
Java+Selenium+Testng自动化测试学习(三)— 断言
查看>>
PAT乙级1012
查看>>
银行业务队列简单模拟(队列queue)
查看>>
MySql中的数据查询语言(DQL)三:连接查询
查看>>