• iOS实现支付宝或微信扫描银行卡号信息


    随着人的懒的助长及人的聪明程度提高,慢慢忘记笔,习惯了键盘操作或手写,慢慢我们进入扫描识别的都市里,

    今天当你体验微信及支付宝扫描识别银行卡号方便准确性特别高;

    github 上提供的资料有,

    https://github.com/card-io/card.io-iOS-SDK

    https://github.com/paypal/PayPal-iOS-SDK 等

    如果是xcode5或者更新的版本,只需要添加下面的库 
    * 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类使用 
    代码: 
    导入

    <code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#import <span class="hljs-title" style="box-sizing: border-box;">"CardIO.h"</span></span> <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#import <span class="hljs-title" style="box-sizing: border-box;">"CardIOPaymentViewControllerDelegate.h"</span></span> - (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)viewWillAppear:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">BOOL</span>)animated { [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">super</span> viewWillAppear:animated]; [CardIOUtilities preload]; } <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//开始扫描</span> - (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">IBAction</span>)scanCard:(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span>)sender { CardIOPaymentViewController *scanViewController = [[CardIOPaymentViewController alloc] initWithPaymentDelegate:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span>]; [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span> presentViewController:scanViewController animated:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span> completion:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>]; } 下面是代理方法 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//取消扫描</span> - (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)userDidCancelPaymentViewController:(CardIOPaymentViewController *)scanViewController { <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"User canceled payment info"</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// Handle user cancellation here...</span> [scanViewController dismissViewControllerAnimated:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span> completion:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>]; } <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//扫描完成</span> -(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)userDidProvideCreditCardInfo:(CardIOCreditCardInfo *)info inPaymentViewController:(CardIOPaymentViewController *)scanViewController { <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//扫描结果</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//CardIOCreditCardInfo *info里面包含了银行卡的一些信息,如info.cardNumber是扫描的银行卡号,现实的是完整号码,而info.redactedCardNumber只显示银行卡后四位,前面的用*代替了,返回的银行卡号都没有空格</span> 可以用下面注释的方法来加空格 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSString *strTem = [info.cardNumber stringByReplacingOccurrencesOfString:@" " withString:@""];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSString *strTem2 = @"";</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// if (strTem.length % 4 == 0)</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// int count = strTem.length / 4;</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// for (int i = 0; i < count; i++)</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSString *str = [strTem substringWithRange:NSMakeRange(i * 4, 4)];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// else</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// int count = strTem.length / 4;</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// for (int j = 0; j <= count; j++)</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// if (j == count)</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSString *str = [strTem substringWithRange:NSMakeRange(j * 4, strTem.length % 4)];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// else</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// {</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// NSString *str = [strTem substringWithRange:NSMakeRange(j * 4, 4)];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// strTem2 = [strTem2 stringByAppendingString:[NSString stringWithFormat:@"%@ ", str]];</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// }</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Received card info. Number: %@, expiry: %02i/%i, cvv: %@."</span>, info<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.redactedCardNumber</span>, info<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.expiryMonth</span>, info<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.expiryYear</span>, info<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.cvv</span>); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// Use the card info...</span> [scanViewController dismissViewControllerAnimated:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span> completion:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>]; } </code><div> </div>
  • 相关阅读:
    vscode调整字体大小
    ML .NET 异常情况检测
    C#使用Elasticsearch(NEST)
    C#使用Elasticsearch获得原始查询(NEST)
    使用Lazy使ConcurrentDictionary的GetOrAdd方法线程安全
    XML转Json 设置指定节点为数组
    分支定界法
    对偶理论
    单纯形法
    连续变量的微分熵
  • 原文地址:https://www.cnblogs.com/zero-zql/p/4729992.html
Copyright © 2020-2023  润新知