如何validationiOS设备支持Apple Pay

我正在启动一个Apple Pay集成项目,并且能够在设备上连接一个事务,并使用Stripe来授权付款。 我实际上挣扎的部分是设备testingApple Pay是否被支持的正确方法? 因此,对于较旧的Iphone型号,我会select隐藏Apple Payfunction,即使安装了ios8或ios9。

我可以检查设备型号,忽略<Iphone5S应用支付。 但是,如果我还需要开始testingIPad版本,这会变得复杂

我想知道是否有某种方法来testing是否支持ApplePay?

我在网上发现这个方法是一个想法,但是它声称苹果的付费在Iphone5模拟器中得到了支持,我想这不是完全正确的。 我没有一个Iphone5真正的设备来testing不幸的。

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

编辑/解决scheme:

我现在使用这一行,它被validation适用于Iphone5(不支持)和Iphone6(支持); 并且我推测其他设备。 我不完全确定它总是在模拟器中工作,但ApplePay有点奇怪,testing最好在设备上完成。

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

canMakePayments – 无论卡的configuration如何,都会返回“YES”(真/ 1)。

canMakePaymentsUsingNetworks – 如果卡未configuration或未正确configuration,将返回“否”。

所以,应该检查两个…如果两者都应该是TRUE,那么只需要使Button“Apple Pay”可见即可。

希望这可以帮助。

wift 3.0你可以检查你的设备支持苹果支付或不通过这个function是它的返回true,那么你的设备支持苹果的支付。 以下是支持苹果支付的设备列表:

iPhone 5s 只有当你购买最新的和平

iPhone SE,

iPhone 6或更高版本,

iPad Pro,

iPad第五代,

iPad Air 2,

iPad mini 3或更高版本,

和Apple Watch。

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