Adyen SDK for iOS
使用 Adyen SDK,您可以帮您的消费者使用他们选择的支付方式支付,这些支付方式来自动态生成的可用支付方式列表。支付方式可用性基于购物者的位置、交易货币和交易金额。
您可以通过两种方式集成 SDK:要么利用 Adyen 预配置的默认 UI 组件和流程(快速集成),要么实现您自己的 UI 和结账体验(自定义集成)。
安装
Adyen SDK 可以通过 CocoaPods 或 Carthage 获取。
CocoaPods
- 将
pod 'Adyen'
添加到您的Podfile
中。 - 运行
pod install
。
如果您的 Podfile
中没有使用 use_frameworks!
,请参阅我们的维基,以防止当使用 Adyen 作为静态框架时出现问题。
Carthage
- 将
github "adyen/adyen-ios"
添加到您的Cartfile
中。 - 运行
carthage update
。 - 按照Carthage Readme中的说明,将框架链接到您的目标。
快速集成
如果您希望快速集成Adyen,可以使用我们提供的默认UI元素来选择支付方式、输入付款信息和完成付款。
为此,请使用您的视图控制器实例化一个CheckoutController
,并调用start()
来呈现结账UI。
var checkoutController: CheckoutController?
func startCheckout() {
checkoutController = CheckoutController(presentingViewController: self, delegate: self)
checkoutController?.start()
}
CheckoutControllerDelegate
应实现以下CheckoutControllerDelegate
方法
func requestPaymentSession(withToken token: String, for checkoutController: CheckoutController, responseHandler: @escaping (String) -> Void)
此方法需要您通过我们的/paymentSession
端点获取一个支付会话,并传递给completion
处理器。在接收到有效的支付会话后,SDK将显示可用的支付方式列表。
func didFinish(with result: Result<PaymentResult>, for checkoutController: CheckoutController)
当结账流程完成时,会调用此方法。结果包含PaymentResult
或Error
。您可以将PaymentResult
的payload
属性提交给我们的/payments/result
端点,以在您的服务器上验证支付。
处理重定向
为了正确处理重定向到外部网站,确保在您的UIApplicationDelegate
中实现以下操作,以便在购物者返回您的应用时通知我们的SDK
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey: Any] = [:]) -> Bool {
Adyen.applicationDidOpen(url)
return true
}
有关实现细节,请参阅快速集成指南。
自定义集成
使用自定义集成,您可以完全控制支付流程,并能够实现独特的结账体验。
此方法需要创建并启动一个 PaymentController
,并实施 PaymentControllerDelegate
协议以进行处理回调。 PaymentControllerDelegate
回调将为您提供一系列可用的支付方式、需要外部流程的支付方式的网址以及支付处理的结果。
有关实现细节,请参阅 自定义集成指南。
示例
您可以在本存储库的示例文件夹中找到快速和自定义集成的示例。
也见
许可
此存储库是开源的,可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。