Braspag Apple Pay SDK
要求
- iOS 10.0+ / macOS 10.13+ / watchOS 4.0+
- Xcode 10.2+
- Swift 5+
安装
CocoaPods
CocoaPods 是 Xcode 项目依赖项管理器。有关其使用和安装的更多信息,请访问官方网站。
要使用 CocoaPods 在项目中使用 Braspag Apple Pay SDK,请将以下代码添加到您的项目 Podfile
pod 'BraspagApplePay', '~> 1.0.0'
在将 Braspag Apple Pay 添加到 Podfile
后,只需在项目文件夹的终端中打开终端并执行以下命令:pod install
.
使用方法
配置
要开始使用SDK进行开发,需要在您的ViewController
中添加一个类型为BraspagApplePayProtocol的变量,如下所示
var braspagApplePay: BraspagApplePayProtocol!
此协议只有一个需要实现的契约,我们将在文档的后续部分讨论它。
要实例化braspagApplePay
变量,我们将使用以下方法
braspagApplePay = BraspagApplePay.createInstance(currencyCode: "BRL",
countryCode: "BR",
merchantId: "ID-CADASTRADO-NO-APPSTORECONNECT",
viewDelegate: self)
注意:参数currencyCode
和countryCode
的默认值分别为"BRL"和"BR",因此可以在调用中省略,如下面的代码片段所示
braspagApplePay = BraspagApplePaycreateInstance(merchantId: "ID-CADASTRADO-NO-APPSTORECONNECT",
viewDelegate: self)
在实例化braspagApplePay
对象时,我们可以在参数viewDelegate
中看到需要提供一个值。此参数是实施支付解决方案的ViewController
的引用。
为了使此参数正常工作,我们需要实现BraspagApplePayViewControllerDelegate
委托,该委托负责接收Apple Pay的返回值。
此委托有3个需要实现的方法。它们是
-
func displayAlert(title: String, message: String) {}
:该方法负责显示SDK返回的消息。这些消息可以是错误信息,也可以是成功信息。- 实现建议
func displayAlert(title: String, message: String) { let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil) alert.addAction(okAction) present(alert, animated: true) }
-
func presentAuthorizationViewController(viewController: UIViewController)
:在此方法中,我们接收一个UIViewController
对象,即用于支付确认的SDK支付弹出窗口(见图1)。- 实现建议
func presentAuthorizationViewController(viewController: UIViewController) { present(viewController, animated: true, completion: nil) }
-
func dismissPaymentAuthorizationViewController()
:如名称所示,这是在此关闭SDK支付弹出窗口的地方。- 实现建议
func dismissPaymentAuthorizationViewController() { dismiss(animated: true, completion: nil) }
为了更完整地了解解决方案,请参阅该存储库中的示例项目。
完成支付
完成上述配置后,您的项目将准备好调用用于进行支付的调用。要开始支付,只需调用前面提到的合约方法,即makePayment
。
此合约有3个参数,其中两个是必需的,一个是可选的。以下是对每个参数的简要说明
-
itemDescription: String (必需)
:产品名称。 -
amount: Double (必需)
:产品价值。例如:如果是BRL,则110.90表示R$ 110,90。 -
contactInfo: ContactInfo (可选)
:付款人的联系信息。在此对象中还可以提供收货和寄送地址。如果未提供此参数contactInfo,则Apple Pay将使用device上登录的Apple ID的数据。收货和寄送地址在contactInfo对象中是可选的。为了清楚地理解使用此参数的规则和重要性,以下是一个简短的说明:- 告知 contactInfo 不 包含地址:选择这个选项时,Apple Pay 将会在支付确认时提示您添加地址(见图2)。只有在您提供了所需的地址后,支付按钮才会启用。
- 告知 contactInfo 包含 地址:在输入地址时,如果需要,Apple Pay 会提供添加新地址的选项。(见图3和图4)。一个重要注意事项是:收货地址具有高于送货地址的优先级,因此,如果收货地址和送货地址相同,您只需提供收货地址,它会自动用作送货地址。
理解了 makePayment
方法的参数后,现在可以使用该方法进行支付。下面是一些使用该方法的示例代码片段:
不提供 contactInfo
braspagApplePay.makePayment(itemDescription: "Meu produto", amount: 150.30, contactInfo: nil)
提供 contactInfo
let contact = ContactInfo(firstName: "Comprador",
lastName: "Desconhecido",
email: "[email protected]",
phoneNumber: "987654321")
braspagApplePay.makePayment(itemDescription: "Meu produto", amount: 2000, contactInfo: contact)
提供 contactInfo 和收货地址
let billingAddress = AddressInfo(street: "Rua A", city: "Cidade A", state: "Estado A", postalCode: "29100000")
let contact = ContactInfo(firstName: "Comprador",
lastName: "Desconhecido",
email: "[email protected]",
phoneNumber: "987654321",
billingAddress: billingAddress)
braspagApplePay.makePayment(itemDescription: "Meu produto", amount: 2000, contactInfo: contact)
完成这些步骤后,支付将被处理,并在 displayAlert
代理方法中接收返回值。