即使设备支持苹果支付,苹果支付按钮也不会显示
apple pay button won't show even though device supports apple pay
所以我的目标是让 apple pay 按钮显示在支持 apple pay 的设备上,并隐藏在不支持它的设备上。
目前我有一个带有两个按钮的 vc,一个是 Apple Pay 按钮,一个是转到正常结帐的按钮。我使用逻辑来确定要显示的正确按钮,如果设备支持 Apple Pay,它会显示两者,如果不支持,它会显示正常的结帐按钮。
这里是模拟器的例子,支持Apple Pay的设备:
这是支持 Apple Pay 的设备的外观。这是我用来确定要显示哪些按钮的逻辑:
func checkIfApplePaySupported() {
if StripeAPI.deviceSupportsApplePay() == false {
applePayButton.isHidden = true
} else {
applePayButton.isHidden = false
applePayButton.addTarget(self, action: #selector(applePayTapped), for: .touchUpInside)
}
}
非常简单,在模拟器上工作得很好。我最初在故事板中隐藏了 Apple Pay 按钮,因此在加载视图时它不会有任何不稳定的 UI 移动。我在 vc 的 viewDidLoad()
中调用该方法。
现在的问题是,当我使用那个确切的逻辑将构建上传到 TestFlight 时,在我的 iPhone 上进行测试时,Apple Pay 按钮没有显示在 vc 中。我有 Apple Pay 设置,我的钱包里有一张卡,事实上,我昨天用 Apple Pay 支付了我的杂货,所以毫无疑问该设备支持 Apple Pay。
这是我每次到达那里时得到的结果 vc :
尽管我的设备全心全意地支持 Apple Pay,但 Apple Pay 按钮从未出现,这就像是最奇怪的错误,我无法弄清楚我在我的生活中做错了什么。这也发生在我的朋友身上,他们的设备支持 Apple Pay,但他们也看不到 Apple Pay 按钮并无法使用它进行支付。关于如何修复此错误的任何建议?
您正在通过 Stripe 使用 Apple Pay。 StripeAPI.deviceSupportsApplePay() 函数不仅仅检查“设备是否支持 Apple Pay?”。它还会检查用户是否至少拥有一张受 Stripe 或其他要求支持的已保存信用卡。在 deviceSupportsApplePay() 的描述中清楚地描述了这一点。
Whether or not this can make Apple Pay payments via a card network supported
by Stripe.
The Stripe supported Apple Pay card networks are:
American Express, Visa, Mastercard, Discover, Maestro.
Japanese users can enable JCB by setting JCBPaymentNetworkSupported
to YES,
after they have been approved by JCB. - Returns: YES if the device is currently able to make Apple Pay payments via one
of the supported networks. NO if the user does not have a saved card of a
supported type, or other restrictions prevent payment (such as parental controls).
用于检查您是否可以 运行 在模拟器上使用您的应用。 StripeAPI.deviceSupportsApplePay() returns 在模拟器中为真。
所以我的目标是让 apple pay 按钮显示在支持 apple pay 的设备上,并隐藏在不支持它的设备上。
目前我有一个带有两个按钮的 vc,一个是 Apple Pay 按钮,一个是转到正常结帐的按钮。我使用逻辑来确定要显示的正确按钮,如果设备支持 Apple Pay,它会显示两者,如果不支持,它会显示正常的结帐按钮。
这里是模拟器的例子,支持Apple Pay的设备:
这是支持 Apple Pay 的设备的外观。这是我用来确定要显示哪些按钮的逻辑:
func checkIfApplePaySupported() {
if StripeAPI.deviceSupportsApplePay() == false {
applePayButton.isHidden = true
} else {
applePayButton.isHidden = false
applePayButton.addTarget(self, action: #selector(applePayTapped), for: .touchUpInside)
}
}
非常简单,在模拟器上工作得很好。我最初在故事板中隐藏了 Apple Pay 按钮,因此在加载视图时它不会有任何不稳定的 UI 移动。我在 vc 的 viewDidLoad()
中调用该方法。
现在的问题是,当我使用那个确切的逻辑将构建上传到 TestFlight 时,在我的 iPhone 上进行测试时,Apple Pay 按钮没有显示在 vc 中。我有 Apple Pay 设置,我的钱包里有一张卡,事实上,我昨天用 Apple Pay 支付了我的杂货,所以毫无疑问该设备支持 Apple Pay。
这是我每次到达那里时得到的结果 vc :
尽管我的设备全心全意地支持 Apple Pay,但 Apple Pay 按钮从未出现,这就像是最奇怪的错误,我无法弄清楚我在我的生活中做错了什么。这也发生在我的朋友身上,他们的设备支持 Apple Pay,但他们也看不到 Apple Pay 按钮并无法使用它进行支付。关于如何修复此错误的任何建议?
您正在通过 Stripe 使用 Apple Pay。 StripeAPI.deviceSupportsApplePay() 函数不仅仅检查“设备是否支持 Apple Pay?”。它还会检查用户是否至少拥有一张受 Stripe 或其他要求支持的已保存信用卡。在 deviceSupportsApplePay() 的描述中清楚地描述了这一点。
Whether or not this can make Apple Pay payments via a card network supported by Stripe. The Stripe supported Apple Pay card networks are: American Express, Visa, Mastercard, Discover, Maestro. Japanese users can enable JCB by setting
JCBPaymentNetworkSupported
to YES, after they have been approved by JCB. - Returns: YES if the device is currently able to make Apple Pay payments via one of the supported networks. NO if the user does not have a saved card of a supported type, or other restrictions prevent payment (such as parental controls).
用于检查您是否可以 运行 在模拟器上使用您的应用。 StripeAPI.deviceSupportsApplePay() returns 在模拟器中为真。