我查看了苹果指南,但没有发现任何关于这个问题的信息。
附加信息:
我已将 Apple Pay 按钮添加到应用程序,如果没有可用于支付的功能(例如卡),则将其隐藏。但是客户不喜欢它并想要其他方法。我认为我们可能会像要求用户添加卡一样打开钱包,但我不确定 Apple 指南对此有何看法。
有没有关于它的明确建议?
我查看了苹果指南,但没有发现任何关于这个问题的信息。
附加信息:
我已将 Apple Pay 按钮添加到应用程序,如果没有可用于支付的功能(例如卡),则将其隐藏。但是客户不喜欢它并想要其他方法。我认为我们可能会像要求用户添加卡一样打开钱包,但我不确定 Apple 指南对此有何看法。
有没有关于它的明确建议?
以下是 Apple关于实施 Apple Pay 的指南。
这是相关部分:使用PKPaymentAuthorizationViewController方法
如果
canMakePayments
返回NO
,则设备不支持 Apple Pay。不要显示 Apple Pay 按钮。相反,请退回到另一种付款方式。如果
canMakePayments
返回YES
但canMakePaymentsUsingNetworks
:返回NO
,则设备支持 Apple Pay,但用户尚未为任何请求的网络添加卡。您可以选择显示支付设置按钮,提示用户设置他或她的卡。用户点击此按钮后,立即开始设置新卡的过程(例如,通过调用 openPaymentSetup 方法)。要在 iOS 8.3 或更高版本上创建用于发起支付请求的 Apple Pay 品牌按钮,请使用PKPaymentButton类。
从 PKPaymentButton 文档:
提供一个按钮,用于通过 Apple Pay 触发付款或提示用户设置卡。
您可以使用 type 对其进行初始化setUp
。
当用户点击此按钮时,调用openPaymentSetup。
override func viewDidLoad() {
super.viewDidLoad()
var applePayButton: PKPaymentButton?
if !PKPaymentAuthorizationViewController.canMakePayments() {
// Apple Pay not supported
return
}
if !PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.masterCard]) {
// Apple Pay supported and payment not setup
applePayButton = PKPaymentButton.init(paymentButtonType: .setUp, paymentButtonStyle: .black)
applePayButton?.addTarget(self, action: #selector(self.setupPressed(_:)), for: .touchUpInside)
} else {
// Apple Pay supported and payment setup
applePayButton = PKPaymentButton.init(paymentButtonType: .buy, paymentButtonStyle: .black)
applePayButton?.addTarget(self, action: #selector(self.payPressed(_:)), for: .touchUpInside)
}
applePayButton?.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(applePayButton!)
applePayButton?.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
applePayButton?.widthAnchor.constraint(equalToConstant: 200).isActive = true
applePayButton?.heightAnchor.constraint(equalToConstant: 60).isActive = true
applePayButton?.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -20).isActive = true
}
@objc func payPressed(_ sender: PKPaymentButton){
// Start payment
}
@objc func setupPressed(_ sender: PKPaymentButton){
let passLibrary = PKPassLibrary()
passLibrary.openPaymentSetup()
}
}