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>
时间: 2024-10-13 01:01:09

iOS实现支付宝或微信扫描银行卡号信息的相关文章

微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题

前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios用户的关注用户,ios用户的线上消费水平普遍比安卓的高.现在好了,微信连WiFi上线连网后关注公众号的流程更新了,解决ios微信扫描二维码不关注就能上网的问题. 还在为无法转化到店顾客为粉丝而烦恼吗? 微信连WiFi上线连网后关注公众号的新流程,让顾客在连你的WiFi时感知你的品牌,成为你的粉丝.

IOS 支付宝、微信回调传值给H5网页

这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSExport>//这里面写H5,也就是网页端定义的方法- (void)isLogin;//如判断用户有没有登录@end @interface HtmlShopingViewController ()< JSContextDelegate>@property (nonatomic, strong

iOS支付宝,微信,银联支付集成封装调用(下)

一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部代码,显然并不是很合适,更何况,可能一个app并不止两个入口.所以封装还是很有必要的. 1.新建Model:-------后台返回支付方式的列表json #import <Foundation/Foundation.h> @interface IOAPayItemModel : NSObject

iOS 支付宝、微信支付的集成记录

一.前言 最近项目需求需要集成支付宝和微信支付,以前没有接触过,这次正好乘着这次机会了解下. 总的来说,客户端的工作不多,无非就是就是集成SDK,然后获取后端传来的参数,吊起支付,回调处理等. 先附上官方文档链接: 支付宝:https://docs.open.alipay.com/204 微信支付:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_1 废话不多说,开始吧. 二.支付宝 1.先集成SDK pod 'Alipay

iOS开发-二维码扫描和应用跳转

iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦,出错也不方便调试.在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架.本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转.ps:本期的源代码会在文章结尾给出链接 扫描相关类 二维码扫描需要获取摄像头并读取

iOS集成支付宝

需要企业和支付宝签约这个是需要审核的[3天左右   以邮件形式告知你] 使用支付宝进行一个完整的支付功能,大致有以下步骤: 1>先与支付宝签约,获得商户ID(partner)和账号ID(seller) (这个主要是公司的负责) 2>下载相应的公钥私钥文件(加密签名用) 3>下载支付宝SDK(登录网站:http://club.alipay.com/)里面提供了非常详细的文档.如何签约.如何获得公钥私钥.如何调用支付接口. 4>生成订单信息 5>调用支付宝客户端,由支付宝客户端跟

五大方案总结:微信扫描下载APK

微信无疑是影响力巨大的App,现在看到一张有吸引力的二维码,人们都会第一时间想到用微信扫描,由于腾讯有意无意的屏蔽,现在市场上用微信直接扫描下载APK的方法并不多,我们有幸找到了一个不错的方法,想记录一下,顺便也把几个试过的常见方案总结了一下: 一.url包含腾讯域名这是几年前的一个方法,具体是在下载地址后面加上#mp.weixin.qq.com,就可以跳转到浏览器下载页面,但自从几年前Android版微信5.0发布之后,这种走后门的方法就被屏蔽了. 二.引导到中间页下载这种方法也就是建立一个过

PHP微信扫描二维码登录网站代码示例

扫描二维码登录对于现在的web应用来说,确实是个很炫酷的功能,安全性也可以保障,不少朋友可能觉得这是个很复杂的工作,其实不然,真正说来只有几个步骤而已. 原理 PC浏览器展示一张二维码图片,该图片二维码值为一段绝对地址的url,大致如下:http://www.example.com/oauth/qrcode?key=key PC浏览器定期轮询 http://www.example.com/oauth/query,可能有的同学会问,怎么不用带上key?这里我们用session来保存key,所以链接

C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息

在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码,希望从更高一个层次,向大家介绍微信的应用开发过程.本篇主要介绍在管理系统中,如何实现微信用户分组信息的同步操作. 其实微信能够风风火火的原因,主要就是因为有用户信息,所以同步并管理好微信账号的关注用户数据是非常重要的.有了微信用户的数据,你可以和你任何应用系统对接,实现系统-手机客户端的数据整合,还可以对用户进行营销管理,如发送用户感兴趣