RBKmoney Payments SDK 1.1.0

RBKmoney Payments SDK 1.1.0

Alexey Yukin 维护。



 
依赖项
RxSwift~> 6.0
RxCocoa~> 6.0
R.swift.Library~> 5.0
 

  • 作者:
  • RBKmoney

RBKmoneyPaymentsSDK

Platform CocoaPods Compatible License

用于在 iOS 移动应用程序中接收支付的库。

О чем все это

为了理解文档、术语等内容,需要了解

Минимальные требования

  • Xcode 12.x
  • Swift 5.3
  • iOS 11.0

Установка

CocoaPods (推荐方法)

CocoaPods - cocoa项目的依赖管理器。获取更多信息、安装和使用的说明,请访问他们的网站。要使用CocoaPods将RBKmoneyPaymentsSDK集成到Xcode项目,请在您的Podfile中添加以下行

pod 'RBKmoneyPaymentsSDK'

手动安装

该库可以通过嵌入框架的方式集成到您的Xcode项目中,此时需要以下外部依赖项

快速入门

  1. 导入SDK模块
import RBKmoneyPaymentsSDK
  1. 获取发票标识符和访问令牌 - invoiceIdentifierinvoiceAccessToken。详细信息见下文。

  2. 创建一个PaymentInputData对象。字段的描述可以在文档中找到。

let paymentInputData = PaymentInputData(
    invoiceIdentifier: invoiceIdentifier,
    invoiceAccessToken: invoiceAccessToken,
    shopName: "Название магазина"
)
  1. 创建一个根视图控制器,指定输入参数和实现PaymentDelegate协议的对象。
let viewController = PaymentRootViewControllerAssembly.makeViewController(
    paymentInputData: paymentInputData,
    paymentDelegate: self
)
  1. 向用户展示UI。
present(viewController, animated: true)
  1. 实现PaymentDelegate协议的方法,并处理其中相应的情况,然后隐藏UI。
extension ViewController: PaymentDelegate {

    func paymentCancelled(invoiceIdentifier: String) {
        print("Payment cancelled, invoice identifier: \(invoiceIdentifier)")
        dismiss(animated: true)
    }

    func paymentFinished(invoiceIdentifier: String, paymentMethod: PaymentMethod) {
        print("Payment finished, invoice identifier: \(invoiceIdentifier), payment method: \(paymentMethod)")
        dismiss(animated: true)
    }
}

发票

发票 - 包含商品和服务列表、数量、价格及其他元数据的文档实体。当用户创建订单时,将创建一个发票,用户将根据此发票支付订单。SDK与已创建的发票一起工作 - 在输入参数中接收发票标识符和访问令牌,这些标识符和访问令牌将用于执行与支付订单相关的逻辑。可以通过以下三种方式获取这些参数

  • 您有自己的后端。应用向后端发送请求,后端使用RBKmoney Payments API和API密钥创建发票,并向应用提供所需数据。最灵活的选项。

  • 应用使用RBKmoney Payments API按模板创建发票,模板的标识符/访问令牌通常嵌入到应用中。该选项在示例应用中使用。

  • 应用程序使用 RBKmoney Payments API 和 API-Key 创建发票。由于在这种情况下 API-Key 会被嵌入到应用程序中,因此这个选项并不完全安全且⚠️ 不建议使用。 ⚠️使用。

支付方式

提供给用户的支付方式可能会根据 SDK 的输入参数(结构 PaymentInputData 中的字段 allowedPaymentMethods)、用户设备的可能性以及 RBKmoney 服务器对于使用特定支付方式进行指定发票的支持而有所不同。例如,银行卡支付可能在 SDK 输入参数中允许,但在 RBKmoney 服务器端被禁止,在这种情况下,用户将无法使用银行卡进行支付。默认情况下,所有支付方式都允许使用。以下是每种支付方式的要求。

银行卡

  • PaymentInputData.allowedPaymentMethods 包含 .bankCard
  • RBKmoney 服务器允许使用银行卡进行指定发票的支付

Apple Pay

  • PaymentInputData.allowedPaymentMethods 包含 .applePay
  • 应用程序根据 文档 配置以与 Apple Pay 一起使用
  • PaymentInputData.applePayInputData 已指定并包含必要的参数 merchantIdentifiercountryCode
  • 用户设备支持使用 Apple Pay 进行支付
  • 用户设备上没有支付禁令
  • RBKmoney 服务器允许使用 Apple Pay 托管数据进行指定发票的支付

此外,RBKmoney 服务器还必须能够解密 Apple Pay 托管数据。为此需要

  • 选项 1:在自己的机器上生成 CSR(证书签名请求)并使用它来在 苹果开发者面板 中生成证书,然后联系 RBKmoney 管理员并转交 p12 格式证书/私钥对
  • 选项 2:联系 RBKmoney 管理员,请求其为您生成 CSR,获取并使用 CSR 来生成证书,然后将证书转交给管理员
  • 向管理员报告使用所提供的证书的商户标识符(也可以不报告 - 证书包含此信息在元数据中)

上述 文档 包含关于生成 CSR/证书的详细说明。

文档

所有 SDK 公共符号均已记录文档,描述可同时在 Xcode 中通过 alt-click 符号直接获取。您还可以在 Docs 文件夹中找到生成的 jazzy 文档(html 格式)。