如果钱包中没有卡,Apple Pay 按钮的最佳行为是什么?

Ole*_*kiv 2 design-guidelines ios applepay wallet

我浏览了苹果指南,但没有找到有关此问题的任何内容。

附加信息:

我已将 Apple Pay 按钮添加到应用程序中,如果没有可用于支付的功能(例如卡),则将其隐藏。但客户不喜欢它并希望采用其他方法。我认为我们可能会像要求用户添加卡一样打开钱包,但我不确定苹果指南对此有何看法。

有没有关于它的明确建议?

Sco*_*ron 7

以下是 Apple关于实施 Apple Pay 的指南。

\n\n

以下是相关部分:\n使用PKPaymentAuthorizationViewController方法

\n\n
\n

如果canMakePayments返回NO,则该设备不支持 Apple Pay。不显示 Apple Pay 按钮。相反,改用另一种付款方式。

\n\n

如果canMakePayments返回YES但是canMakePaymentsUsingNetworks:返回NO,则设备支持 Apple Pay,但用户尚未为任何请求的网络添加卡。您可以选择显示付款设置按钮,提示用户设置他或她的卡。用户点击此按钮后,立即启动设置新卡的过程(例如,通过调用 openPaymentSetup 方法)。

\n\n

要在 iOS 8.3 或更高版本上创建 Apple Pay\xe2\x80\x93branded 按钮以发起付款请求,请使用PKPaymentButton类。

\n
\n\n

来自 PKPaymentButton 文档:

\n\n
\n

提供一个按钮,用于通过\n Apple Pay 触发付款或提示用户设置卡。

\n
\n\n

您可以使用类型来初始化它setUp

\n\n

当用户点击此按钮时,调用openPaymentSetup

\n\n
 override func viewDidLoad() {\n    super.viewDidLoad()\n\n    var applePayButton: PKPaymentButton?\n    if !PKPaymentAuthorizationViewController.canMakePayments() {\n      // Apple Pay not supported\n      return\n    }\n    if !PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.masterCard]) {\n      // Apple Pay supported and payment not setup\n      applePayButton = PKPaymentButton.init(paymentButtonType: .setUp, paymentButtonStyle: .black)\n      applePayButton?.addTarget(self, action: #selector(self.setupPressed(_:)), for: .touchUpInside)\n    } else {\n      // Apple Pay supported and payment setup\n      applePayButton = PKPaymentButton.init(paymentButtonType: .buy, paymentButtonStyle: .black)\n      applePayButton?.addTarget(self, action: #selector(self.payPressed(_:)), for: .touchUpInside)\n    }\n\n    applePayButton?.translatesAutoresizingMaskIntoConstraints = false\n    self.view.addSubview(applePayButton!)\n    applePayButton?.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true\n    applePayButton?.widthAnchor.constraint(equalToConstant: 200).isActive = true\n    applePayButton?.heightAnchor.constraint(equalToConstant: 60).isActive = true\n    applePayButton?.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -20).isActive = true\n\n  }\n\n  @objc func payPressed(_ sender: PKPaymentButton){\n    // Start payment\n  }\n\n  @objc func setupPressed(_ sender: PKPaymentButton){\n    let passLibrary = PKPassLibrary()\n    passLibrary.openPaymentSetup()\n  }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n