TapCardScanner-iOS
一个 SDK,它为以不同方式和上下文扫描不同类型的支付卡提供了一个接口。
要求
要使用 SDK,必须满足以下要求:
- Xcode 11.0 及以上版本
- Swift 4.2 及以上版本(随 Xcode 预装)
- 应用程序部署目标 SDK:iOS 12.0 及以上版本
安装
使用 CocoaPods 安装
CocoaPods 是一个依赖管理器,它自动化并简化了在项目中使用第三方库的过程。您可以按以下命令安装它:
$ gem install cocoapods
Podfile
要将goSellSDK集成到您的Xcode项目中使用CocoaPods,请在您的Podfile
中指定它
platform :ios, '12.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
target 'MyApp' do
pod 'TapCardScanner-iOS'
end
然后,运行以下命令
$ pod update
特性
TapCardScanner-iOS
提供了广泛的方式来扫描支付卡,无论是
异步卡扫描
该套件提供了一种异步离线方式,可以直接在您的应用中从摄像头流中扫描卡片。这对于扫描凸印卡非常有效。套件提供了两种启动异步扫描的方式
- 行内卡扫描器。
- 全屏卡扫描器。
- 基于EMVCO的推支付二维码。
此外,套件还提供了两种情况下的扫描仪样式接口
- 取消按钮颜色。
- 取消按钮本地化。
- 扫描器矩形颜色。
异步 - 全屏扫描器
此功能提供了一种简单的方法,在覆盖屏幕的模式界面中启动扫描器。
TapFullScreenUICustomizer 类
当您想要自定义全扫描仪的外观和感觉时,都会使用此类。
Swift:
import TapCardScanner_iOS
let tapFullScreenCustomiser:TapFullScreenUICustomizer = TapFullScreenUICustomizer()
tapFullScreenCustomiser.tapFullScreenCancelButtonTitle = "Cancel"
tapFullScreenCustomiser.tapFullScreenCancelButtonFont = UIFont.systemFont(ofSize: 15)
tapFullScreenCustomiser.tapFullScreenCancelButtonTitleColor = .white
tapFullScreenCustomiser.tapFullScreenCancelButtonHolderViewColor = .black
tapFullScreenCustomiser.tapFullScreenScanBorderColor = .green
参数:
参数名称 | 参数类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|
tapFullScreenCancelButtonTitle | String | 否 | 取消 | 取消按钮标题 |
tapFullScreenCancelButtonFont | UIFont | 否 | UIFont.systemFont(ofSize: 15) | 取消按钮字体 |
tapFullScreenCancelButtonTitleColor | UIColor | 否 | .white | 取消按钮标题颜色 |
tapFullScreenCancelButtonHolderViewColor | UIColor | 否 | .black | 取消按钮持有视图背景颜色 |
tapFullScreenScanBorderColor | UIColor | 否 | .green | 扫描卡边框颜色 |
TapFullScreenCardScanner 类
这是一个提供将 Tap 扫描仪以模态全屏控制器显示的功能的类。与之集成就像写一行代码一样简单,如下所示
Swift:
import TapCardScanner_iOS
let fullScanner:TapFullScreenCardScanner = TapFullScreenCardScanner()
fullScanner.showModalScreen(presenter: self,tapCardScannerDidFinish: { (scannedCard) in
print("Card Number : \(scannedCard.tapCardNumber ?? "")\nCard Name : \(scannedCard.tapCardName ?? "")\nCard Expiry : \(scannedCard.tapCardExpiryMonth ?? "")/\(scannedCard.tapCardExpiryYear ?? "")\n")
},scannerUICustomization: customiser)
参数:
参数名称 | 参数类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|
演示者 | UIViewController | 是 | 无 | TAP 扫描仪将从中呈现的 UIViewController |
tapFullCardScannerDimissed | () -> () | 否 | 无 | 如果用户点击取消按钮,将调用此 dismiss 块 |
tapCardScannerDidFinish | (TapCard)->() | 否 | 无 | 当扫描到一张卡片时将调用此块 |
scannerUICustomization | TapFullScreenUICustomizer | 否 | .init() | 如果您想自定义全屏扫描仪的 UI 元素外观,请传递此对象 |
TapCard 类
这是扫描仪扫描卡片后在扫描完卡片时返回的数据模型
参数:
参数名称 | 参数类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|
tapCardNumber | String | 否 | 无 | 表示如果有,则扫描的卡片编号。如果没有,则为 nil |
tapCardName | String | 否 | 无 | 表示如果有,则扫描的卡片姓名。如果没有,则为 nil |
tapCardExpiryMonth | String | 否 | 无 | 如果有,则表示扫描卡片的失效月份 MM。如果没有,则为 nil |
tapCardExpiryYear | String | 否 | 无 | 如果有,则表示扫描卡片的失效年份 YYYY 或 YY。如果没有,则为 nil |
异步 - 内联屏幕扫描器
该特性提供了一种简单的方法,将触摸卡片扫描器嵌入到您的UI中,作为UI的一部分
TapInlineCardScanner 类
该类提供功能,通过将其自身绑定到某个UIView,将内联扫描器作为给定布局的一部分显示出来。
Swift:
import TapCardScanner_iOS
let tapInlineScanner:TapInlineCardScanner = .init()
tapInlineScanner.startScanning(in: previewView,cardScanned: { (scannedCard) in
print("Card Number : \(scannedCard.tapCardNumber ?? "")\nCard Name : \(scannedCard.tapCardName ?? "")\nCard Expiry : \(scannedCard.tapCardExpiryMonth ?? "")/\(scannedCard.tapCardExpiryYear ?? "")\n")
})
参数:
参数名称 | 参数类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|
previewView | UIView | 是 | 无 | 显示扫描器/相册流内容的UIView |
scanningBorderColor | UIColor | 否 | .green | 扫描卡片边框的颜色。 |
timoutAfter | Int | 否 | -1 | 此值决定扫描器应该在多少秒后超时(触发超时回调)。默认值为-1,表示无需超时,且不会接受小于20秒的值。 |
didTimout | (TapInlineCardScanner)->() | 否 | 无 | 超时后将被调用的方法,让调用者决定是让用户继续扫描,还是取消扫描。 |
cardScanned | (TapCard)->() | 否 | 无 | 卡片扫描后将触发的回调。注意,扫描器将在此之后暂停自身,因此您可以使用相应的接口将其删除或恢复。 |
同步扫描器
该特性提供了一种简单的方法来启动同步扫描,该扫描可以扫描来自给定静态图像的卡片详情。**这是要扫描非凸起的卡片时使用的**。
TapInlineCardScanner 类
该类提供从静态图像扫描卡片细节的接口,如下所示
Swift:
import TapCardScanner_iOS
let staticInlineScanner:TapInlineCardScanner = .init()
staticInlineScanner.ScanCard(from: imageWithCard)
参数:
参数名称 | 参数类型 | 必需 | 默认值 | 描述 |
---|---|---|---|---|
image | UIImage | 是 | 无 | 您要从其中获取卡片数据的静态图像。 |
maxDataSize | Double | 否 | 0 | 触摸扫描器会确保压缩图像到指定的最大KB范围。允许的大小越大,POST请求就越大,上传所需的时间就越长。 |
minCompression | CGFloat | 否 | .2 | 点击扫描器会尝试将图像压缩到给定的最大尺寸,但不会低于指定的质量。 |
cardScanned | (TapCard)->() | 否 | 无 | 一个将返回扫描卡片详情的块。 |
onErrorOccured | (String)->() | 否 | 无 | 一个将返回过程中任何一个阶段发生的任何错误的块。 |