"Оплата не завершена" с помощью Apple Pay - не удается получить токен

я внедряю Apple Pay с помощью PassKit, я показываю диалог надлежащим образом и обрабатываю методы делегата, но каждый раз, когда я использую touch Id для проверки покупки, он говорит "оплата не завершена" и никогда не достигает моего метода делегата paymentAuthorizationViewController:didAuthorizePayment:completion:. Я сделал все сие полностью настроить apple pay, но я не могу получить токен для отправки на мой платежный шлюз.

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

вот что я вижу, и экран просто остается там и говорит: "Попробуйте Снова и снова:

enter image description here

2 ответов


наконец-то получил токен. Мне нужно было включить 3DS в качестве возможности обработки платежей:

request.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS;

вот что я получаю за копипастинг чужого кода (http://goo.gl/uvkl8F). Странно, потому что 3DS "требуется" в соответствии с документы:

вы должны поддержать 3DS; поддержка EMV опционная.

почему я должен явно указать, что 3DS поддерживается продавцом, когда это требуется, вне меня.


убедитесь, что кредитная карта, настроенная на Passbook, проверена...в противном случае, PKPaymentAuthorizationViewController вернет nil.