iOS ApplePay PKPaymentAuthorizationViewController 未出现在 Xcode11/iOS 13 中

Mar*_*ell 5 ios swift applepay

我们的应用程序已经实施了 ApplePay 多年。就在最近,我按下按钮触发它,只发现付款表PKPaymentAuthorizationViewController没有出现。它不会在沙箱(即连接到 Xcode 的模拟器或设备)环境中滑动,但放置断点表明它已成功创建。自从我测试这个已经有一段时间了,但我怀疑 Xcode11 或 iOS 13 会发生一些变化。

我的代码是非常标准的 Apple Pay,但贴在下面。

        let item = PKPaymentSummaryItem()
        item.label = "Our Label"
        let price = NSDecimalNumber(mantissa: UInt64(totalPrice), exponent: -2, isNegative: false)
        item.amount = price

        items.append(item)

        request.paymentSummaryItems = items

        if let applePayController = PKPaymentAuthorizationViewController(paymentRequest: request) {
            applePayController.delegate = self
            present(applePayController, animated: true)
        }
Run Code Online (Sandbox Code Playgroud)

Lee*_*ine 6

如果您使用的merchantIDPKPaymentRequest未在mobile.entitlements 中列出,就会发生这种情况。或者,如果您的应用程序的配置文件未启用 MerchantID。

视图控制器

  PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
  
  request.merchantIdentifier = "com.your.app.merchandId"

Run Code Online (Sandbox Code Playgroud)

移动权利

<dict>
    <key>com.apple.developer.in-app-payments</key>
    <array>
        <string>com.your.app.merchandId</string>
    </array>
</dict>
Run Code Online (Sandbox Code Playgroud)


Jer*_*nJK 2

我遇到了同样的问题,Apple Pay 突然停止在我们的应用程序中工作。我们也已经支持这一点至少半年了。

使用最新的 Xcode(Xcode 11.2,Beta 2 (11B44)),它似乎又可以工作了。

我猜那是 Xcode 的 bug。尽管它没有列在 Xcode 的Xcode 11.1Xcode 11.2 beta 2发行说明中。