如何验证 ios 设备支持 Apple Pay

How to verify ios device supports Apple Pay

我正在启动一个 Apple Pay 集成项目,并且已经能够在设备上连接交易,并使用 Stripe 授权支付。我真正纠结的部分是设备测试是否支持 Apple Pay 的正确方法?因此,对于较旧的 Iphone 型号,我会选择隐藏 Apple Pay 功能,即使它们安装了 ios8 或 ios9。

我大概可以检查设备型号,并在 < Iphone5 秒内忽略 Apply Pay。但是,如果我还需要开始测试 IPad 版本等,这会变得很复杂。

我想知道是否有一种方法可以测试是否支持 ApplePay?

我在网上发现这种方法是一种想法,但是它声称 Iphone5 模拟器支持 apple pay,我认为这不完全正确。不幸的是,我没有 Iphone5 实际设备来测试。

- (BOOL) applePaySupported {
    return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}

EDIT/SOLUTION:

我现在使用这条线,它被验证适用于 Iphone5(不支持)和 Iphone6(支持);我假设其他设备。我不完全确定它在模拟器中总是有效,但 ApplePay 在那里有点奇怪,最好在设备上进行测试。

- (BOOL) applePaySupported {
    return [PKPaymentAuthorizationViewController canMakePayments] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]];
}

canMakePayments - 将 return "YES" ( True / 1 ) 与卡配置无关。

canMakePaymentsUsingNetworks - 如果卡未配置或配置不正确,将 return "NO"。

所以,应该同时检查两者...如果两者都应为 TRUE,则只需要使 Button "Apple Pay" 可见。

希望对您有所帮助。

在 swift 3.0 您可以通过此功能检查您的设备是否支持 apple pay return true 那么您的设备是否支持 apple pay。以下是支持苹果支付的设备列表:

iPhone 5秒 只有购买最新的和平

iPhone SE,

iPhone 6 或更高版本,

iPad亲,

iPad5代,

iPad空气2,

iPad mini 3 或更高版本,

和 Apple Watch。

func applePaySupported() -> Bool {
            return PKPaymentAuthorizationViewController.canMakePayments() && PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .visa, .masterCard])
}