如何验证 ios 设备是不是支持 Apple Pay

Posted

技术标签:

【中文标题】如何验证 ios 设备是不是支持 Apple Pay【英文标题】:How to verify ios device supports Apple Pay如何验证 ios 设备是否支持 Apple Pay 【发布时间】:2015-11-18 16:30:51 【问题描述】:

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

我可能可以检查设备型号,而忽略 Apply Pay for

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

我在网上找到了这种方法作为一个想法,但它声称 Iphone5 模拟器支持 Apple Pay,我认为这并不完全正确。不幸的是,我没有可用于测试的 Iphone5 实际设备。

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

编辑/解决方案:

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

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

【问题讨论】:

【参考方案1】:

canMakePayments - 无论卡配置如何,都将返回“YES”(真/1)。

canMakePaymentsUsingNetworks - 如果卡未配置或未正确配置,将返回“NO”。

所以,应该检查两者...如果两者都应该是 TRUE 那么只需要使按钮“Apple Pay”可见。

希望这会有所帮助。

【讨论】:

我已经同时尝试了这两个条件,但它总是返回 true,请告诉我该怎么做?【参考方案2】:

在 swift 3.0 中,您可以通过此功能检查您的设备是否支持 Apple Pay,如果它返回 true,则您的设备支持 Apple Pay。以下是支持apple pay的设备列表:

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])

【讨论】:

以上是关于如何验证 ios 设备是不是支持 Apple Pay的主要内容,如果未能解决你的问题,请参考以下文章

如何检测我的苹果设备是不是支持蓝牙低功耗

如何验证 iOS 沙盒帐户是不是仍然有效?

如何验证在 Heroku 上运行的 Parse 是不是支持新的 Apple Push Notification 根证书?

在测试设备未通过基于 SMS 的用户身份验证后,iOS 应用程序被 Apple 拒绝 [关闭]

我可以在非 iOS 设备上的 Cordova 应用程序中使用 Apple CloudKit JS 吗?

Cloudkit JS 身份验证在 ios 设备内使用 ionic 失败