【发布时间】:2015-01-30 15:50:39
【问题描述】:
我正在尝试在我的应用中使用 Apple Pay。呈现 PKPaymentAuthorizationViewController 效果很好。但是,在我填写完信用卡和账单信息后,它只显示了一个旋转的轮子和“正在处理”,如图所示。
呈现Apple Pay视图控制器的代码如下:
let request = Stripe.paymentRequestWithMerchantIdentifier(DH_APPLEPAY_ID)
request.paymentSummaryItems = [PKPaymentSummaryItem(label: label, amount: amountDecimal)]
request.requiredBillingAddressFields = PKAddressField.All
request.requiredShippingAddressFields = PKAddressField.PostalAddress | PKAddressField.Email
request.countryCode = "US"
request.currencyCode = "USD"
request.merchantCapabilities = PKMerchantCapability.CapabilityEMV | PKMerchantCapability.Capability3DS
request.supportedNetworks = [PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]
if Stripe.canSubmitPaymentRequest(request) {
let paymentController = PKPaymentAuthorizationViewController(paymentRequest: request)
paymentController.delegate = self
self.navigationController?.presentViewController(paymentController, animated: true, completion: nil)
} else {
//popup
DHUtils.alert("Apple Pay", message: "Please add your credit card to Passbook.", inViewController: self)
}
func paymentAuthorizationViewController(controller: PKPaymentAuthorizationViewController!, didAuthorizePayment payment: PKPayment!, completion: ((PKPaymentAuthorizationStatus) -> Void)!) 代表永远不会被调用。
证书状态看起来不错。我在这里想念什么才能让它发挥作用?
【问题讨论】:
-
您在触摸 ID/输入密码之前是否看到“处理中”消息?您是否为
PKPaymentAuthorizationViewController实现了任何其他委托方法,例如didSelectShippingAddress? -
@lxt 我实现了 didSelectShippingAddress。我评论了它,“用密码付款”出现了。我想我在 didSelectShippingAddress 中做错了什么。非常感谢!
-
没问题!也许您没有在该委托方法中调用完成处理程序?
-
@lxt 你又救了我一天。谢谢 :)