最近由於公司需要一個掃描銀行卡獲取卡號的功能,網上找了很多相關的資料,完全掃描銀行卡
獲取卡號資訊的都是價格貴的不得了的,而且僅僅只是授權而已,在此我們退而求次,找到一個可
以掃描信用卡的第三方框架,給大傢伙分享一下,只能掃描信用卡……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版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
- (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: %<a href="http://www.jobbole.com/members/uz441800">@,</a> expiry: %02i/%i, cvv: %@.", info.redactedCardNumber, info.expiryMonth, info.expiryYear, info.cvv); [scanViewController dismissViewControllerAnimated:YES completion:nil]; } |
SWIFT版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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) } } |
到此就大功告成了,老外封裝的東西還是非常給力的,希望可以找到掃描銀行卡比較好用的第三方。
最終的效果,識別的非常準確哦
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式