BamboraCheckoutSDK 2.0.3

BamboraCheckoutSDK 2.0.3

Bambora Checkout 维护。



  • Worldline Bambora

Bambora Checkout SDK for iOS

适用于 iOS 的 Checkout SDK 提供了集成 Bambora Checkout 与您的 iOS 应用程序所需的工具。SDK 帮助显示 Checkout 会话以及在支付流程中发出事件。

Demo of the card payment flow.

安装

Bambora SDK 可以通过 CocoaPodsSwift 包管理器Carthage 获取。

CocoaPods

通过将以下内容添加到您的 Podfile 中,将 Bambora SDK 作为 pod 添加到您的项目中

$ pod 'BamboraCheckoutSDK'

之后,运行以下命令

$ pod install

Swift 包管理器

使用以下步骤用 Swift 包管理器添加 Bambora SDK:

  1. 前往您的项目设置并点击“包依赖”选项卡。
  2. 点击“+”以添加新的 Swift 包依赖项。
  3. 在搜索栏中输入 Github URL:https://github.com/bambora/checkout-sdk-ios
  4. 另外,您可以在包含包时设置版本。默认选项是选择最新版本,这是推荐的选项,以确保您保持最新状态并拥有最新的(安全)补丁。
  5. 点击“添加包”

当包成功添加后,它将自动添加到您的目标依赖项中。

Carthage

通过在您的 Cartfile 中添加以下内容,使用 Carthage 添加 Bambora SDK:

$ github "bambora/checkout-sdk-ios"

之后,运行以下命令

$ carthage update --use-xcframeworks

导航到 Carthage/Build 目录,该目录位于包含 .xcodeproj.xcworkspace 的相同目录中。在此目录中存储了 .xcframework 包。将 .xcframework 拖放到“框架、库和嵌入内容”部分的指定目标中。请确保它设置为“嵌入并签名”。

允许重定向到钱包应用

您的客户可能希望通过钱包方式完成支付,例如 MobilePay 和 Vipps。理想情况下,将被重定向到相应的钱包应用并完成支付。要允许将这些应用重定向到其他应用,需要在项目中设置可重定向到的哪些应用。以下是允许重定向到其他应用的步骤:

  1. 转到您项目的目标并点击“信息”选项卡。
  2. 添加键“查询 URL 方案”。
  3. 对于每个应支持 URL 方案,通过点击“+”在该“查询 URL 方案”中添加一个条目。
  4. 向项目添加一个值。这应该是一个方案,例如:"mobilepayonline"。

它应该看起来像这样:'已查询URL方案'的示例

支持的URL

当前SDK支持MobilePay、Vipps和Swish。对于这些钱包产品,你可以定义以下URL。

钱包产品 生产应用 测试应用
MobilePay mobilepay
mobilepayonline
mobilepay-test
mobilepayonline-test
Vipps vipps vippsmt
Swish swish swish

配置URL方案

为了让客户在通过钱包方式进行支付后可以重定向到您的应用,必须在项目中设置URL Scheme。以下步骤显示了如何正确设置方案。

  1. 转到您项目的目标并点击“信息”选项卡。
  2. 展开'URL类型'类别。
  3. 在'URL方案'文本框中输入您希望使用的URL方案。

它应该看起来像这样:'URL方案'的示例

使用

通过Bambora Checkout SDK处理支付只需几个简单的步骤

  • 初始化SDK
  • 向客户显示支付界面
  • 监听事件并处理支付结果

创建结算会话

为了初始化SDK,你需要一个会话令牌,可以通过创建结算会话来获取。关于如何创建结算会话的详细信息,请参阅Bambora开发者文档

初始化SDK

以如下方式初始化SDK

var checkout = Bambora.checkout(sessionToken: sessionToken, customUrl: customUrl)

参数

  • sessionToken - 在上一步创建会话时收到的令牌
  • (可选) customUrl:覆盖SDK连接的默认URL的选项

显示结算

初始化SDK后,Bambora结算UI可以向您的客户显示。要显示支付屏幕,只需调用

checkout.show()

SDK将在当前屏幕上弹出显示Bambora结算UI。如果客户选择使用其钱包支付应用程序支付,SDK将确保打开相应的应用程序。SDK还将处理将用户重定向回配置的URL方案。

订阅事件

SDK是事件驱动的。这意味着在支付流程中发生任何事情时,它会触发事件。要能接收这些事件,您需要订阅它们。

  • 订阅所有事件
    任何事件发生时都会收到通知

    checkout.subscribeOnAllEvents()
    
  • 订阅某些事件
    当特定事件发生时收到通知。将下面示例中的事件替换为所需的那些。可能的选项列在这里。此处

    checkout.on(events: [EventType.authorize, EventType.cardTypeResolve])
    

    使用以下片段来订阅单个事件。

    checkout.on(event: EventType.authorize)
    
  • 取消订阅某些事件
    使用以下示例来取消订阅某些事件。将事件类型替换为不再需要接收的类型。

    checkout.off(events: [EventType.authorize, EventType.cardTypeResolve])
    

    使用以下片段来取消订阅特定事件。

    checkout.off(event: EventType.authorize)
    

接收事件

要拦截您已订阅的事件,实现 CheckoutDelegate 协议。此协议有一个名为 onEventDispatched(event:Event) 的函数,您可以像这样实现

func onEventDispatched(event: Event) {
    switch event {
    case is AuthorizeEvent:
        // do something when an Authorize event was intercepted
    default:
        // do something when any other event was intercepted
    }
}

事件概述

事件 触发条件 数据描述
授权 在支付已授权时发送 包含支付数据,例如 txnIdorderId
CheckoutViewClose 在支付屏幕已关闭时发送 不包含任何数据
PaymentTypeSelection 在选择支付类型时发送 包含支付类型,例如 paymentcardmobilepay
CardTypeResolve 每次输入足够多的支付卡号数字以确定支付卡类型时发送 包含支付卡类型数据,例如 idfee
ErrorEvent 在发生错误时发送 包含 BamboraError 类型的有效载荷,例如 loadSessionErrorgenericError

关于不同类型事件及其数据的更多信息,可以在Bambora 开发文档中找到。

关闭 SDK

当支付已授权并完成时,Checkout SDK 会自动关闭。在其他所有场景中,可以通过调用 Bambora.close() 来关闭 SDK。这在新支付重新初始化 SDK 之前是必需的。

请注意,如果用户仍在完成支付,则在过程中关闭 SDK 可能会导致支付失败。

当SDK关闭时,会发生几件事情

  • 显示Bambora Checkout视图的视图控制器立即消失
  • SDK的资源,如Checkout,被清理
  • 现在可以实例化一个新的支付会话

演示应用

演示应用展示了您如何在自己的应用中使用Bambora Checkout SDK。它显示了如何实现以下功能

  • 使用Bambora的默认生产URL初始化会话
  • 查看已完成后的付款详情
  • 监听并响应事件
  • 配置deeplink URL