9

我正在使用 PassKit 实现 Apple Pay,我正在以正确的方式显示对话框并处理委托方法,但是每次我使用 touch Id 验证购买时,它都会显示“付款未完成”并且永远不会到达我的委托方法paymentAuthorizationViewController:didAuthorizePayment:completion:。我完全做了所有这些事情来设置苹果支​​付,但我似乎无法取回令牌以发送到我的支付网关。

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];
}

这是我所看到的,屏幕只是停留在那里,一遍又一遍地说“再试一次”:

在此处输入图像描述

4

2 回答 2

12

终于拿到令牌了。我需要启用 3DS 作为支付处理功能:

request.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS;

这就是我复制粘贴别人的代码(http://goo.gl/uvkl8F)所得到的。奇怪,因为根据文档,3DS 是“必需的” :

你必须支持3DS;对 EMV 的支持是可选的。

为什么我必须在需要时明确说明商家支持 3DS,这超出了我的理解。

于 2014-10-24T21:11:46.533 回答
0

确保您在 Passbook 上设置的信用卡经过验证...否则,PKPaymentAuthorizationViewController 将返回 nil。

于 2014-10-30T17:24:22.820 回答