如何验证ios设备支持Apple Pay

时间:2015-11-18 16:30:52

标签: ios applepay

我正在启动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]];
}

2 个答案:

答案 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])
}