Я интегрирую Apple Pay, используя PKPaymentAuthorizationViewController и его методы делегирования. Когда пользователь меняет адрес, запускается следующий метод делегата:
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didSelectShippingContact:(PKContact *)contact completion:(void (^)(PKPaymentAuthorizationStatus status, NSArray<PKShippingMethod *> *shippingMethods, NSArray<PKPaymentSummaryItem *> *summaryItems))completion
Когда я пытаюсь получить доступ к номеру телефона из «контакта», он всегда пуст и также имя (имя, фамилия и т. Д. * 1028). *.) также пусты. Но выбранный контакт доставки имеет всю информацию, такую как имя, номер телефона, почтовый адрес.
PKPaymentRequest *pkPaymentRequest = [[PKPaymentRequest alloc] init];
pkPaymentRequest.merchantIdentifier = merchantId;
pkPaymentRequest.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa, PKPaymentNetworkDiscover];
pkPaymentRequest.merchantCapabilities = PKMerchantCapability3DS;
pkPaymentRequest.countryCode = @"US";
pkPaymentRequest.currencyCode = @"USD";
pkPaymentRequest.requiredShippingContactFields = [NSSet setWithArray:@[PKContactFieldPostalAddress, PKContactFieldName, PKContactFieldPhoneNumber]];
Это адрес, который я использовал на данный момент:
Найдите отладочную информацию на скриншотах ниже, где показано, что в объекте PKContact "contact" отсутствует необходимая информация.