swift - 无法出示 Apple Pay 授权 Controller

标签 swift swift3 ios10 applepay ios10.2

当我尝试使用 present(completion: _) 呈现 PKPaymentAuthorizationController 时,它失败了,没有任何进一步的信息。

我是这样介绍的:

let paymentSummaryItems: [PKPaymentSummaryItem] = <HIDDEN>

let paymentRequest = PKPaymentRequest()
paymentRequest.paymentSummaryItems = paymentSummaryItems
paymentRequest.merchantIdentifier = <HIDDEN>
paymentRequest.merchantCapabilities = .capability3DS
paymentRequest.countryCode = "US"
paymentRequest.currencyCode = "USD"
paymentRequest.supportedNetworks = [.visa, .amex, .masterCard, .discover]
paymentRequest.requiredShippingAddressFields = [.email]

let paymentController = PKPaymentAuthorizationController(paymentRequest: paymentRequest)
paymentController.delegate = self

paymentController.present { success in
    if success {
      print("Presented payment controller")
    } else {
      print("Failed to present payment controller")
    }
}

每次尝试时,我都会收到“无法提供支付 Controller ”的消息,并且不会出现 Apple Pay 授权模式。

我添加了一个 PKPaymentAuthorizationController.canMakePayments() 检查,它返回 true。我不确定会出什么问题。相同的代码(使用不同的 merchantIdentifier)在我的其他 Apple Pay 项目中没有问题。

最佳答案

如果您在 PKPaymentRequest 对象的任何属性中有拼写错误,将导致此行为。请仔细检查以下属性是否正确:

  • merchantID 应与您在 Capabilities 中的 merchantID 匹配。
  • currencyCode 应该是三个字母的 ISO 4217 货币代码。
  • countryCode 应该是两个字母的 ISO 3166 国家代码。
  • decimalNumbers in paymentSummaryItems

在我的例子中,我试图用硬编码的 merchantID 测试该功能,结果发现拼写错误。在这种情况下,PKPaymentRequestPKPaymentAuthorizationController(或 PKPaymentAuthorizationViewController)将成功初始化,但当您提供 Controller 时,它根本不会显示。

关于swift - 无法出示 Apple Pay 授权 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42305132/

相关文章:

objective-c - 读取串口iOS

ios - iOS 10 中“设置/常规/关于/证书信任设置”的 URL 方案

ios - 滚动 UICollectionView 时动画 NSLayoutConstraint

ios - 从 Realm 中的列表中删除对象 - Swift

ios - 将 String/NSString 编码为代码页 850 格式

xcode - 在 Xcode 8 中运行单元测试会导致错误 "could not load inserted library ' .../IDEBundleInjection' 因为找不到图像”

Swift 不可变结构和方便的更新

iOS 应用程序在点击时挂起

nsdateformatter - 日期格式在 Swift 3 中不起作用

ios - 我们如何在 xCode iOS 中隐藏敏感数据