PrimerNolPaySDK 1.0.1

PrimerNolPaySDK 1.0.1

Primer 维护。



  • Primer

iOS 的 PrimerNolPaySDK

PrimerNolPaySDK 是一个便捷的 iOS 框架,它基于 Nol 支付的 TransitSDK。它简化了与 NFC Nol 支付卡的信息交互。使用此 SDK,您可以扫描、链接、解除链接以及选择用于交易的 NFC Nol 支付卡。

SDK 提供了一个简单的用户界面来演示所有可用的实施流程。

功能

  • NFC 扫描:扫描 NFC Nol 支付卡。
  • 链接/存档:安全地存储支付卡详细信息。
  • 解除链接:删除已链接的支付卡详细信息。
  • 交易:使用所选卡片进行支付。

要求

  • iOS 13.1 或更高版本
  • 兼容支持 NFC(近场通信)的设备
  • Xcode 12 或更高版本

安装

使用 CocoaPods

要使用 CocoaPods 将 `primer-nol-pay-sdk-ios` 集成到 Xcode 项目中,请将以下行添加到您的 `Podfile` 中

pod 'PrimerNolPaySDK'

然后,在终端中运行以下命令

pod install

初始化

为了示例项目能够工作

  • 将您的应用捆绑标识符设置为与 Nol 注册的一个相匹配。
  • 从 Nol 获取 AppId。此 ID 必须在初始化库时使用。
  • 添加 NFC 功能
  • 更新 Info.plist 文件内容

NFC 功能

要与 NFC Nol 支付卡交互,需要在您的 Xcode 项目中启用 NFC 功能

  1. 在 Xcode 中打开您的项目。
  2. 导航到目标设置。
  3. 在“签名与功能”选项卡下,单击“+ 功能”按钮。
  4. 添加“近场通信标签读取”。

Info.plist 设置

请将以下设置添加到您的 `Info.plist` 以确保正确的 NFC 通信和网络访问

<key>com.apple.developer.nfc.readersession.formats</key>
<array>
	<string>TAG</string>
</array>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
	<string>D2760000850100</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
<key>NFCReaderUsageDescription</key>
<string>We use NFC to scan Nol payment card. (or whatever fits your needs)</string>

在开发期间使用沙盒环境时需要将 `NSAllowsArbitraryLoads` 设置为 `true`。

用法

...
import PrimerNolPaySDK

let primerNolPay = PrimerNolPay(appId: "<Your-AppID>", isDebug: true, isSandbox: true) { sdkId, deviceId in
    return ""
}

您可能需要在生产环境中将调试和沙盒标志设置为 false。

链接卡片

primerNolPay.scanNFCCard { result in
    switch result {
    case .success(let cardNumber):
        print("Scanned Card Number: \(cardNumber)")
    case .failure(let error):
        print("Error scanning card: \(error)")
    }
}

首先,为扫描的卡片创建一个令牌

primerNolPay.makeLinkingTokenFor(cardNumber: "<Scanned-Card-Number>") { result in
    // Handle result
}

然后,发送用于链接的 OTP

primerNolPay.sendLinkOTPto(mobileNumber: "<Mobile-Number>", withCountryCode: "<Country-Code>", andToken: "<Token>") { result in
    // Handle result
}

最后,使用 OTP 链接卡片

primerNolPay.linkCardFor(otp: "<OTP>", andLinkToken: "<Token>") { result in
    // Handle result
}

解除链接卡片

从发送用于解除链接的 OTP 开始

primerNolPay.sendUnlinkOTPTo(mobileNumber: "<Mobile-Number>", withCountryCode: "<Country-Code>", andCardNumber: "<Card-Number>") { result in
    // Handle result
}

然后,使用 OTP 解除卡片

primerNolPay.unlinkCardWith(cardNumber: "<Card-Number>", otp: "<OTP>", andUnlinkToken: "<Token>") { result in
    // Handle result
}

获取已链接的卡片

primerNolPay.getAvaliableCardsFor(mobileNumber: "<Mobile-Number>", withCountryCode: "<Country-Code>") { result in
    // Handle result
}

请求支付

primerNolPay.requestPaymentFor(cardNumber: "<Card-Number>", andTransactionNumber: "<Transaction-Number>") { result in
    // Handle result
}

示例项目

仓库包括一个示例项目,它展示了 PrimerNolPaySDK 的全部功能。

故障排除

如果您遇到任何问题,请检查您的捆绑标识符是否与 Nol 注册的相匹配,并确保在初始化期间正确使用了 Nol 提供的 `AppId`。

许可协议

有关详细信息,请参阅 LICENSE 文件。

贡献

欢迎提交拉取请求!我们很高兴听到您的反馈和改进意见。