MyCheckWalletUI
这是一个提供支付方式管理 UI 的 SDK。
示例
要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install
。示例展示了显示 Checkout 视图控制器、显示支付管理视图控制器以及在准备支付时获取令牌。
要求
iOS 9 或更高版本,Swift 3.0
安装
MyCheckWalletUI 可以通过 CocoaPods 获取。您首先需要请求 MyCheck 团队成员给您 MyCheck 仓库的读取权限。一旦您获得了权限,您只需将以下行添加到 Podfile 的顶部即可进行安装
source 'https://bitbucket.org/erez_spatz/pod-spec-repo.git'
source 'https://github.com/CocoaPods/Specs.git'
这将为 CocoaPods 设置公共 CocoaPods 仓库和 MyCheck 私有仓库,作为 CocoaPods 搜索框架的目标。
您可以在 'bitbucket.org' 前面添加 YOUR_USER_NAME@,这样 pod 工具在您更新或安装时就不需要每次都询问您了。
在目标内部添加
pod "MyCheckWalletUI"
现在您可以运行 'pod install' 了
使用
为了管理用户会话(登录、注销等),您需要使用会话单例。
首先,将以下代码添加到您想使用 MyCheck 的类顶部:
import MyCheckCore
import MyCheckWalletUI
...
在您的应用代理的 application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
函数调用中,同时调用会话单例的配置函数以及钱包的配置函数
Session.shared.configure(YOUR_PUBLISHABLE_KEY, environment: .sandbox)
Wallet.shared.configureWallet()
这将设置 SDK 以与所需环境一起工作。
在使用任何其他功能之前,您必须登录用户。登录是通过首先从您的服务器(该服务器将使用密钥从 MyCheck 服务器获取它)获取刷新令牌来完成的。一旦您有了刷新令牌,请调用会话单例上的登录函数
Session.shared.login(REFRESH_TOKEN, success: HANDLE_SUCCESS
}, fail: HANDLE_FAIL)
一旦您登录,请添加
import MyCheckWalletUI
###钱包 钱包单例可用于获取付款方式,如果未使用 MCCheckoutViewController
进行结账。如果是这种情况,则可以使用默认付款方式。
Wallet.shared.getDefaultPaymentMehthod(success: {method in
}, fail: {
error in
})
###Wallet.UI 钱包单例具有默认 UI 设置(默认字体),您可以通过以下方式设置自己的字体,以便 SDK 使用它们。1.您的字体必须包含在您的应用程序包中。2.字体必须包含在 Info.plist 文件中。3.使用 setCustomeFont
方法。
Wallet.shared.setCustomeFonts(regularFont: UIFont , boldFont: UIFont)
###MCCheckoutViewController 这个视图控制器旨在嵌入到您的视图控制器中。它允许用户获得钱包所需的基本功能
-
添加付款方式
-
选择付款方式 将视图控制器添加到容器视图。有两种方法可以实现。
-
界面构建器:更改容器连接到的视图控制器(通过 segue)为
MCCheckoutViewController
。 -
在代码中:调用 MCCheckoutViewController.init() 来创建实例。
创建实例后,您应该设置 checkoutDelegate
并实现 checkoutViewShouldResizeHeight
以应对高度变化。您应该调整容器视图的高度,使其等于代理方法返回的高度。当您想使用付款方式时,请使用视图控制器的变量 selectedMethod
来获取用户选择的付款方式(如果没有选择则为 nil)
###MCPaymentMethodsViewController 这个类是一个全屏视图控制器,允许用户完全管理自己的付款方式
- 显示所有他的付款方式。
- 选择默认付款方式。
- 删除付款方式。
- 添加付款方式。
要创建 MCPaymentMethodsViewController 实例,请调用构造函数并按以下方式呈现:
let controller = MCPaymentMethodsViewController.createPaymentMethodsViewController(self)
self.presentViewController(controller, animated: true, completion: nil)
您还必须实现 MCPaymentMethodsViewControllerDelegate,并在完成后解散视图控制器(参见图例)
func dismissedMCPaymentMethodsViewController(controller: MCPaymentMethodsViewController){
controller.dismissViewControllerAnimated(true, completion: nil)
}
PayPal
为了使 PayPal 正常工作,您需要执行一些额外的步骤。首先,安装 PayPal 模型。这将添加 Braintree PayPal SDK 以及来自 MyCheck 钱包 UI SDK 的额外源文件。将以下行添加到您的 Podfile:
pod "MyCheckWalletUI/PayPal"
完成此操作后,您还需要添加一行初始化 PayPal 模型的代码。
PaypalFactory.initiate(YOUR_PACKAGE_NAME)
必要的最后一行代码是允许 MyCheck 钱包 UI SDK 对应用切换做出响应。这是因为 PayPal SDK 会打开外部应用/浏览器。
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return MyCheckWallet.shared.handleOpenURL(url, sourceApplication: sourceApplication)
}
最后,为了完全支持 PayPal 和它使用的应用切换,请按照以下说明编辑您的 info.plist 文件:在 [Braintree PayPal SDK 指南](https://开发商.braintreepayments.com/guides/paypal/client-side/ios/v4) 的 "注册 URL 类型" 部分中描述的操作,请访问以下链接:[Braintree PayPal SDK 指南](https://developers.braintreepayments.com/guides/paypal/client-side/ios/v4)。
Apple Pay
为了让 Apple Pay 也能正常工作,您需要执行一些额外的步骤。首先,按照 [这些说明](https://developer.apple.com/library/content/ApplePay_Guide/Configuration.html#//apple_ref/doc/uid/TP40014764-CH2-SW1)配置您的环境以支持 Apple Pay。发送带有您创建的证书、私钥和商家 ID 的 p12 文件到 MyCheck 团队成员。然后,通过在 Podfile 中添加以下行来安装 MyCheckWalletUI SDK 的 Apple Pay 模型。
pod "MyCheckWalletUI/ApplePay"
运行 pod install
之后,您还需要添加一行代码来初始化使用您在上一步骤中在 Apple 开发者网站上创建的商家标识符的 Apple Pay 模型。
ApplePayFactory.initiate(merchantIdentifier: YOUR_MERCHANT_ID)
在上面的代码行应该添加到您的应用程序代理的 application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
函数中,在调用 configure 之后。这就完成了。您还需要对 Dine SDK 进行一些修改,以便添加 Apple Pay 支持,这已经在 Dine SDK 的 README 文件和入门指南中进行了讨论。
Visa Checkout
首先,安装 Visa Checkout 模型。这将添加 Visa Checkout SDK 以及 MyCheck 钱包 UI SDK 的额外源文件。在 Podfile 中添加以下行。
pod "MyCheckWalletUI/VisaCheckout"
完成此操作后,您还需要添加一行代码以初始化 Visa Checkout 模型。
VisaCheckoutFactory.initiate(apiKey: VISA_CHECKOUT_API_KEY )
请确保 API 密钥具有与 MyCheck 钱包配置中相同的环境对应。
MasterPass
首先,安装 MasterPass 模型。将以下行添加到 Podfile 中。
pod "MyCheckWalletUI/MasterPass"
完成此操作后,您还需要添加一行代码以初始化 MasterPass 模型。
MasterPassFactory.initiate()
作者
Elad Schiller, [email protected]
许可协议
请阅读项目中可用的LICENSE文件