PKPaymentAuthorizationViewController(paymentRequest: request



我在启动PKPaymentAuthorizationViewController时遇到问题,在其中一个设备中返回nil。

设备区域设置为英国,我在 Apple 钱包中添加了一张英国发行的卡。

PKPaymentRequest 配置如下:

                let request = PKPaymentRequest()
                request.merchantIdentifier = "mymerchantid"
                request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex]
                request.merchantCapabilities = PKMerchantCapability.Capability3DS
                request.countryCode = "US"
                request.currencyCode = "USD"
                let price: <NSDecimalNumber>
               let item : PKPaymentSummaryItem = PKPaymentSummaryItem(label: "amount", amount: price, type: .Pending)
                request.paymentSummaryItems = [
                        item
                    ]
           let paymentAuthorizationVC = PKPaymentAuthorizationViewController(paymentRequest: request) // Returning Nil
           if PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(SupportedPaymentNetworks) // Returns true

设备: 苹果手机 6操作系统:10.2.2

注意:同一张卡在另一台设备上为同一应用程序工作正常。

尝试如下链接和其他几个博客中提到的 - 没有运气Apple pay PKPaymentauthorizationViewController 在加载付款请求时始终返回 nil

寻找建议。

我遇到了同样的问题,原因是当它未包含在受支持的支付网络时,请使用 Discover 卡进行测试。确保您传递了您的用户群可能使用的所有信用卡类型。

尝试更改此行:

request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex]

到以下内容:

request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex, PKPaymentNetwork.discover]

在 Swift3 中,PKPaymentAuthorizationViewController init() 的声明没有定义为可选的,即使它在失败时确实返回nil

相关内容

  • 没有找到相关文章