我正在启动Apple Pay集成项目,并且能够在设备上连接交易,并使用Stripe授权付款。我实际上正在努力的部分是设备测试Apple Pay是否受支持的正确方法?因此,对于较旧的Iphone型号,我会选择隐藏Apple Pay功能,即使它们安装了ios8或ios9。
我可以检查设备型号,然后忽略Apply Pay for< IPhone 5S。然而,如果我还需要开始测试IPad版本等,这会变得复杂。
我想知道是否有一种方法可以测试ApplePay是否受支持?
我在网上发现这种方法是一个想法,但它声称在Iphone5模拟器中支持苹果支付,我想这并不完全正确。不幸的是,我没有Iphone5实际设备进行测试。
- (BOOL) applePaySupported {
return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}
修改/溶液
我现在使用这一行,它被验证适用于Iphone5(不支持)和Iphone6(支持);我推测其他设备。我不完全确定它总是在模拟器中工作,但ApplePay在那里有点奇怪,测试最好在设备上完成。
- (BOOL) applePaySupported {
return [PKPaymentAuthorizationViewController canMakePayments] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}
答案 0 :(得分:10)
canMakePayments
- 无论卡配置如何,都会返回“YES”(True / 1)。
canMakePaymentsUsingNetworks
- 如果卡未配置或未正确配置,将返回“NO”。
所以,应该检查两个......如果两者都应该为TRUE,那么只需要使“Apple Pay”按钮可见。
希望这有帮助。
答案 1 :(得分:3)
在 wift 3.0 中,您可以通过此功能检查您的设备支持苹果支付是否返回true然后您的设备支持苹果支付。以下是支持苹果支付的设备列表:
iPhone 5s 仅当您购买最新的和平时
iPhone SE,
iPhone 6或更高版本,
iPad Pro,
iPad第5代,
iPad Air 2,
iPad mini 3或更高版本,
和Apple Watch。
func applePaySupported() -> Bool {
return PKPaymentAuthorizationViewController.canMakePayments() && PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .visa, .masterCard])
}