我正在使用 PassKit 实现 Apple Pay,我正在以正确的方式显示对话框并处理委托(delegate)方法,但每次我使用 touch Id 验证购买时它都会显示“付款未完成”并且永远不会到达我的委托(delegate)方法 paymentAuthorizationViewController:didAuthorizePayment:completion:
。我做了所有 these things完全可以设置 Apple Pay,但我似乎无法取回 token 以发送到我的支付网关。
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
self.paymentRequest = request;
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantCapabilities = PKMerchantCapabilityEMV;
request.merchantIdentifier = @"merchant.com.*******";
request.requiredShippingAddressFields = PKAddressFieldPostalAddress;
request.requiredBillingAddressFields = PKAddressFieldPostalAddress;
request.paymentSummaryItems = [self paymentSummaryItems];
self.paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
self.paymentPane.delegate = self;
if (self.paymentPane) {
[self presentViewController:self.paymentPane animated:TRUE completion:nil];
}
这就是我所看到的,屏幕只是停留在那里并一遍又一遍地说“再试一次”:
最佳答案
终于拿到 token 了。我需要启用 3DS 作为支付处理功能:
request.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS;
这就是我复制粘贴别人代码的结果 ( http://goo.gl/uvkl8F )。奇怪,因为根据 the docs 3DS 是“必需的” :
You must support 3DS; support of EMV is optional.
为什么我必须在需要时明确声明商家支持 3DS,这超出了我的理解范围。
关于ios - Apple Pay "Payment not completed"- 无法获取 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26553229/