RBKmoneyPaymentsSDK
用于在 iOS 移动应用程序中接收支付的库。
О чем все это
为了理解文档、术语等内容,需要了解
- RBKmoney 个人账户
- RBKmoney 文档
- RBKmoney Payments API
- 证书、配置文件、标识符等 - Apple 开发者面板
- 设置 Apple Pay
Минимальные требования
- Xcode 12.x
- Swift 5.3
- iOS 11.0
Установка
CocoaPods (推荐方法)
CocoaPods - cocoa项目的依赖管理器。获取更多信息、安装和使用的说明,请访问他们的网站。要使用CocoaPods将RBKmoneyPaymentsSDK集成到Xcode项目,请在您的Podfile
中添加以下行
pod 'RBKmoneyPaymentsSDK'
手动安装
该库可以通过嵌入框架的方式集成到您的Xcode项目中,此时需要以下外部依赖项
快速入门
- 导入SDK模块
import RBKmoneyPaymentsSDK
-
获取发票标识符和访问令牌 -
invoiceIdentifier
和invoiceAccessToken
。详细信息见下文。 -
创建一个
PaymentInputData
对象。字段的描述可以在文档中找到。
let paymentInputData = PaymentInputData(
invoiceIdentifier: invoiceIdentifier,
invoiceAccessToken: invoiceAccessToken,
shopName: "Название магазина"
)
- 创建一个根视图控制器,指定输入参数和实现
PaymentDelegate
协议的对象。
let viewController = PaymentRootViewControllerAssembly.makeViewController(
paymentInputData: paymentInputData,
paymentDelegate: self
)
- 向用户展示UI。
present(viewController, animated: true)
- 实现
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
已指定并包含必要的参数merchantIdentifier
和countryCode
- 用户设备支持使用 Apple Pay 进行支付
- 用户设备上没有支付禁令
- RBKmoney 服务器允许使用 Apple Pay 托管数据进行指定发票的支付
此外,RBKmoney 服务器还必须能够解密 Apple Pay 托管数据。为此需要
- 选项 1:在自己的机器上生成 CSR(证书签名请求)并使用它来在 苹果开发者面板 中生成证书,然后联系 RBKmoney 管理员并转交 p12 格式证书/私钥对
- 选项 2:联系 RBKmoney 管理员,请求其为您生成 CSR,获取并使用 CSR 来生成证书,然后将证书转交给管理员
- 向管理员报告使用所提供的证书的商户标识符(也可以不报告 - 证书包含此信息在元数据中)
上述 文档 包含关于生成 CSR/证书的详细说明。
文档
所有 SDK 公共符号均已记录文档,描述可同时在 Xcode 中通过 alt-click 符号直接获取。您还可以在 Docs 文件夹中找到生成的 jazzy 文档(html 格式)。