问题描述
我的应用程序不断被应用程序审核团队拒绝,因为我的应用程序中的 Apple Pay 按钮在他们点击时在他们的设备上没有响应。 Apple Pay 表在我的设备上显示得很好,但从未完成付款(错误说我的借记卡号码无效,我的卡在其他地方都可以正常工作,不知道如何解决这个问题,但不是这里的主要问题)。
我并不担心在我的应用程序上使用 Apple Pay 付款,因为我不会成为使用我的应用程序的人,但我确实希望确保它适用于其他所有人,因为 Apple 将其作为反复出现的问题提出来。
>这是我展示 Apple Pay 表单的功能:
{
guard let cost = actualCostOfEvent.text else { return }
guard let name = nameOfEvent else { return }
let text = cost
let textWithout$ = text.replacingOccurrences(of: "$",with: "")
guard let finalCost = Double(textWithout$) else { return }
let fee = finalCost / Double(12.0)
let roundedFee = floor(fee * 100) / 100.0
let total = finalCost + roundedFee
let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: "merchant.xxxxx.xxxxx.xxxxx",country: "CA",currency: "CAD")
paymentRequest.supportednetworks = [.visa,.masterCard,.interac,.amex,.discover]
paymentRequest.paymentSummaryItems = [
PKPaymentSummaryItem(label: name,amount: NSDecimalNumber(value: finalCost)),PKPaymentSummaryItem(label: "Service Fee",amount: NSDecimalNumber(value: roundedFee)),PKPaymentSummaryItem(label: "XXXXXX",amount: NSDecimalNumber(value: total))
]
guard let applePayController = STPApplePayContext(paymentRequest: paymentRequest,delegate: self) else { return }
if StripeAPI.canSubmitPaymentRequest(paymentRequest) {
applePayController.presentApplePay {
self.startApplePayCheckout()
}
}
}
我似乎无法弄清楚为什么 Apple Pay 表没有显示给 App 审阅者,有什么建议或需要更改的地方吗?如果没有,我只需要提交上诉。
解决方法
我已经复制了您的代码,并且运行良好;为我显示了 ApplePay 表。您可能需要与 Apple 确认他们正在测试的 iOS 版本并提交申诉。
一些注意事项,以防万一:
- 你不需要检查 StripeAPI.canSubmitPaymentRequest(paymentRequest) 是否存在。当您初始化 STPApplePayContext 时,它会自动为您进行检查:https://github.com/stripe/stripe-ios/blob/master/Stripe/STPApplePayContext.swift#L87
- 如果您使用的是测试密钥,只要您的真实卡信息正确,就可以完成支付。使用测试密钥不会向您收费。