NICardManagementSDK 2.0.0

NICardManagementSDK 2.0.0

Jerome Van HerpeKirill FilatovGabrielAleksei Kiselev 维护。



  • Network International

Network International iOS 卡管理 SDK

Network International iOS 卡管理 SDK 允许您集成 Network International 标准卡管理 API。 (https://developer.network.ae) 当前支持的功能包括

  1. 获取安全卡详情:显示一个卡组件,提供显示卡号、有效期、CVV 和持卡人姓名的能力。这支持端到端加密,以安全地传输敏感信息。
  2. 设置 PIN:显示一个 PIN 键盘,允许持卡人在新卡上设置 PIN。该 PIN 端到端加密,以安全地传输敏感信息。
  3. 更改 PIN:显示两个 PIN 键盘,允许持卡人通过提供旧 PIN 和新 PIN 来更改他们的 PIN。PIN 端到端加密,以安全地传输敏感信息。
  4. 验证 PIN:显示一个 PIN 键盘,允许持卡人验证其卡上的 PIN。该 PIN 端到端加密,以安全地传输敏感信息。

要求

Network International iOS 卡管理 SDK 需要 Xcode 13 及更高版本,且支持 iOS 12 及以上版本。

安装

我们支持所有流行的 iOS 依赖项管理工具。SDK 可以通过 CocoaPods 或使用 Swift 包管理器添加。我们还可以手动将 XCFramework 添加到您的项目中。

XCFramework

连接我们的 iOS SDK 到您的 iOS 应用程序的步骤

  1. 将 NICardManagementSDK.xcframework 拖动到您的项目目标的 Frameworks、Libraries 和嵌入式内容部分:通用 -> 框架、库和嵌入式内容。
  2. 确保在嵌入选项卡上设置“嵌入并签名”选项。
  3. 如果您的应用程序使用 Objective C 编写,请执行以下附加步骤:构建设置 -> 构建选项 -> 总是嵌入 Swift 标准库设置为 YES
Swift 包管理器

从 Xcode 中,只需选择 文件 > Swift 包 > 添加包依赖... 并将 https://github.com/network-international/cardmanagement-sdk-ios 粘贴到搜索字段中。您可以根据您的偏好指定规则。

CocoaPods

以下是使用 CocoaPods 安装它的步骤

  1. 在 .xcodeproj 文件所在的根目录中创建一个 Podfile。
  2. 在上一步创建的 Podfile 中添加 pod 'NICardManagementSDK’。
  3. 关闭 Xcode 并在创建 Podfile 的目录中运行 pod install 命令。
  4. 执行上述步骤后,打开创建的 .xcworkspace 文件以打开您的项目。

集成

基础

通过遵循上述步骤之一安装 SDK 后,您可以将其导入到 iOS 应用中并使用它。

Swift

import NICardManagementSDK

使用方法

创建 NIInput 模型

Swift

    let input = NIInput(bankCode: bankCode,
                        cardIdentifierId: cardIdentifierId,
                        cardIdentifierType: cardIdentifierType,
                        connectionProperties: NIConnectionProperties(rootUrl: rootUrl, token: token),
                        displayAttributes: NIDisplayAttributes(theme: .light, language: language))
    NICardManagementAPI.displayCardDetailsForm(input: input, viewController: self) { successResponse, errorResponse in
        // handle error and success
    }
显示属性

显示属性参数是可选的。您可以设置一个或多个属性,甚至可以不设置任何属性。

  1. 主题

我们支持暗色和亮色模式,通过设置显示属性的“主题”参数。如果客户应用处于暗色模式,则应使用我们的SDK的暗色主题。如果客户应用处于亮色模式,则应使用我们的SDK的亮色主题。

  1. 语言

支持的语言为英语和阿拉伯语。您可以设置所需的语言或不设置。如果您不设置任何语言,如果支持设备语言,则使用设备语言,否则默认为英语。

  1. 字体

我们支持字体的自定义。可以为每个表单视图的标签设置系统字体和自定义字体。

  1. 卡片属性

卡片属性是可选的。如果想要自定义卡细节视图,则可以设置。

我们提供以下功能

  • 默认显示或隐藏卡片细节的可能性

当显示卡片视图时,直接显示卡片细节(不隐藏),我们期望shouldHide属性设置为false,否则设置为false。如果没有设置shouldHide属性,则默认为true。

    let cardAttributes = NICardAttributes(shouldHide: false)
  • 自定义背景图片

对于卡片背景图片,我们期望设置一个UIImage。推荐的大小是343 x 182。

    let image = UIImage(named:"background_image")
    let cardAttributes = NICardAttributes(backgroundImage: image)) 
  • 设置文本位置为分组标签

卡片细节标签按以下方式分组

  • 卡片号码组

  • 到期日期和CVV组

  • 持卡人姓名组

为了设置每个组的定位,我们期望以下参数的百分比值(卡片容器视图高度和宽度的百分比):leftAlignmentcardNumberGroupTopAlignmentdateCvvGroupTopAlignmentcardHolderNameGroupTopAlignment

    let textPosition = NICardDetailsTextPositioning(leftAlignment: 0.09, cardNumberGroupTopAlignment: 0.4, dateCvvGroupTopAlignment: 0.6, cardHolderNameGroupTopAlignment: 0.8)
    let cardAttributes = NICardAttributes(textPositioning: textPosition)

所有这些都是可选的。

如果需要所有属性,则使用所有属性初始化NICardAttributes。

    let image = UIImage(named:"background_image") 
    let textPosition = NICardDetailsTextPositioning(leftAlignment: 0.09, cardNumberGroupTopAlignment: 0.4, dateCvvGroupTopAlignment: 0.6, cardHolderNameGroupTopAlignment: 0.8)
    let cardAttributes = NICardAttributes(shouldHide: false, backgroundImage: image, textPositioning: textPosition) 

表单工厂接口

显示卡片细节表单

表单接口将在新屏幕(UIViewController)中显示卡片细节。显示的卡片信息包括:卡片号码、到期日期、CVV和持卡人姓名。

func displayCardDetailsForm(input: NICardManagementSDK.NIInput, viewController: UIViewController, completion: @escaping (NICardManagementSDK.NISuccessResponse?, NICardManagementSDK.NIErrorResponse?) -> Void)

Swift

    NICardManagementAPI.displayCardDetailsForm(input: input, viewController: self) { successResponse, errorResponse in
        // handle error and success
    }
设置PIN表单

将显示PIN键盘在一个独立的屏幕(UIViewController)中。

Swift

NICardManagementAPI.setPinForm(input: input, type: pinType, viewController: self) { successResponse, errorResponse in
	//  handle here error and success
}

或不指定类型(PIN长度)

NICardManagementAPI.setPinForm(input: input, viewController: self) { successResponse, errorResponse in
	// handle here error and success
}
更改PIN表单

将显示PIN键盘在一个独立的屏幕(UIViewController)中。更改PIN是两步流程:1.捕获当前PIN 2.捕获新PIN

NICardManagementAPI.changePinForm(input: input, type: pinType, viewController: self) { successResponse, errorResponse in
	//  handle here error and success
}

或不指定类型(PIN长度)

NICardManagementAPI.changePinForm(input: input, viewController: self) { successResponse, errorResponse in
	// handle here error and success
}
验证PIN表单

将显示PIN键盘在一个独立的屏幕(UIViewController)中。

Swift

NICardManagementAPI.verifyPinForm(input: input, type: pinType, viewController: self) { successResponse, errorResponse in
    //  handle here error and success
}

或不指定类型(PIN长度)

NICardManagementAPI.verifyPinForm(input: input, viewController: self) { successResponse, errorResponse in
    // handle here error and success
}

程序接口

客户应用将负责处理UI部分。

检索卡片详情

卡片细节的程序接口将以对象(NICardDetailsResponse)形式返回卡片详情,返回的卡片信息包括:卡片号码、到期日期、CVV和持卡人姓名。

Swift

NICardManagementAPI.getCardDetails(input: input) { successResponse, errorResponse in
    //  handle here error and success
}
设置PIN

设置PIN功能的程序接口将返回成功或失败响应。

Swift

NICardManagementAPI.setPin(pin: pin, input: input) { successResponse, errorResponse in
    //  handle here error and success
}
更改PIN

更改PIN功能的程序接口将返回成功或失败响应。

Swift

NICardManagementAPI.changePin(oldPin: oldPin, newPin: newPin, input: input) { successResponse, errorResponse in
    //  handle here error and success
}
验证PIN

验证PIN功能的程序接口将返回成功或失败响应。

Swift

NICardManagementAPI.verifyPin(pin: pin, input: input) { successResponse, errorResponse in
    //  handle here error and success
}