如何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]) }