PaylineSDK
描述
Payline SDK 是一个开发工具包,允许与 Payline 服务交互,以执行支付或查看钱包。
示例
要运行示例项目,只需克隆此仓库,然后在 Example 文件夹中运行以下命令:
安装
PaylineSDK 通过 CocoaPods 提供。
要安装
- 在你的 Podfile 中添加以下行:
pod 'PaylineSDK'
- 在项目根目录下运行以下命令:
pod install
使用
初始化
为了初始化SDK,首先需要实例化一个PaymentController()
和一个WalletController()
,以及它们相关的代理。
lazy var paymentController: PaymentController = {
return PaymentController(presentingViewController: UIViewController, delegate: PaymentControllerDelegate)
}()
lazy var walletController: WalletController = {
return WalletController(presentingViewController: UIViewController, delegate: WalletControllerDelegate)
}()
初始化支付的函数需要两个参数:一个PaymentControllerDelegate
和一个UIViewController
。初始化钱包的函数也需要两个参数:一个WalletContrllerDelegate
和一个UIViewController
。
为了让你的UIViewController作为代理工作,你需要实现PaymentControllerDelegate
和WalletControllerDelegate
协议。
class ViewController: UIViewController, PaymentControllerDelegate, WalletControllerDelegate
进行支付
使用showPaymentForm
方法来显示支付方式页面。
@IBAction func clickedPay(_ sender: Any?) {
let url = URL(string: ...)
paymentController.showPaymentForm(environment: url)
}
参数url
的获取将根据你的实现方式来决定。更多详细信息,请参阅Payline文档,点击此处。
访问钱包
使用showManageWallet
方法来显示钱包页面。
@IBAction func clickedManageWallet(_ sender: Any?) {
let url = URL(string: ...) {
walletController.manageWebWallet(environment: url)
}
与进行支付类似,参数url
的获取也将根据你的实现方式来决定。更多详细信息,请参阅Payline文档,点击此处。
实现代理
PaymentControllerDelegate
PaymentControllerDelegate是一个接口,它定义了应用程序和PaymentController之间的通信。
它需要实现五个方法
-
paymentControllerDidShowPaymentForm(_:)
: 当支付方式列表显示时调用的方法。 -
paymentControllerDidFinishPaymentForm(_:withState:)
: 支付完成时调用的方法。此方法接收一个类型为WidgetState
的对象作为参数,该对象是一个枚举,表示由小部件回调函数返回的状态属性的可能值。 -
paymentController(_:didGetIsSandbox:)
: 当支付环境已知(测试环境或生产环境)时调用的方法。 -
paymentController(_:didGetLanguageCode:)
: 当小部件的语言已知时调用的方法。 -
paymentController(_:didGetContextInfo:)
: 当获取支付环境信息时调用的方法。
WalletControllerDelegate
WalletControllerDelegate 是一个定义了 WalletController 与应用程序之间通信的接口。
它需要实现一个方法
walletControllerDidShowWebWallet(_:)
: 当管理钱包页面显示时调用的方法
使用示例
初始化
class ViewController: UIViewController {
lazy var paymentController: PaymentController = {
return PaymentController(presentingViewController: self, delegate: self)
}()
lazy var walletController: WalletController = {
return WalletController(presentingViewController: self, delegate: self)
}()
执行支付
@IBAction func clickedPay(_ sender: Any?) {
let url = URL(string: ...)
//On appelle la méthode showPaymentForm avec l'url du tunnel de paiement récupéré en fonction de votre implémentation
paymentController.showPaymentForm(environment: url)
}
显示钱包
@IBAction func clickedManageWallet(_ sender: Any?) {
let url = URL(string: ...)
//On appelle la méthode manageWebWallet avec l'url du wallet récupéré en fonction de votre implémentation.
paymentController.manageWebWallet(environment: url)
}
实现委托
extension ViewController: PaymentControllerDelegate {
func paymentControllerDidShowPaymentForm(_ paymentController: PaymentController) {
//Gérer l'action ici
}
func paymentControllerDidFinishPaymentForm(_ paymentController: PaymentController, withState state: WidgetState) {
//Gérer le WidgetState ici
}
func paymentController(_ paymentController: PaymentController, didGetIsSandbox: Bool) {
//Gérer l'action ici
}
func paymentController(_ paymentController: PaymentController, didGetLanguageCode: String) {
//Gérer l'action ici
}
func paymentController(_ paymentController: PaymentController, didGetContextInfo: ContextInfoResult) {
//Gérer l'action ici
}
}
extension ViewController: WalletControllerDelegate {
func walletControllerDidShowWebWallet(_ walletController: WalletController) {
//Gérer l'action ici
}
}
Payline文档
Payline文档可在此处找到。它提供了关于系统的概述、详细信息和某些主题的解释。
作者
Payline,[email protected]
许可证
PaylineSDK在GPL许可证下可用。更多信息请参阅LICENSE文件。