Apple Pay не отображает предварительно заполненную информацию

При попытке настроить Apple Pay в приложении iOS мы столкнулись с проблемой с API и предварительной заполнением информации. Наш пользовательский поток позволяет пользователю вручную устанавливать свой адрес, электронную почту и телефон перед оплатой с помощью Apple Pay, поэтому мы хотим быть уверены, чтобы заполнить приглашение Apple Pay с их вводом, если они решают это сделать.

В соответствии с руководство по разработке, это должно быть так же просто, как установить эти значения в request.shippingContact. Однако, когда мы это делаем, значения игнорируются.

Есть ли что-то, что документация нам не сообщает?

PKContact *contact = [[PKContact alloc] init];  
contact.emailAddress = @"[email protected]";
contact.phoneNumber = [[CNPhoneNumber alloc] initWithStringValue:@"5555555"];

NSPersonNameComponents *name = [[NSPersonNameComponents alloc] init];
name.givenName = @"John";
name.familyName = @"Appleseed";
contact.name = name;

request.billingContact = contact;
request.shippingContact = contact;
request.requiredBillingAddressFields = PKAddressFieldAll;
request.requiredShippingAddressFields = PKAddressFieldEmail | PKAddressFieldPhone;

Apple Pay Sample

Ответ 1

Как уже упоминалось в документации, нам необходимо правильно проверить значения адресов. Мы должны передать действительный адрес с действующим почтовым индексом, см. Код ниже.

PKContact *contact = [[PKContact alloc] init];

NSPersonNameComponents *name = [[NSPersonNameComponents alloc] init];
name.givenName = @"John";
name.familyName = @"Appleseed";

contact.name = name;

CNMutablePostalAddress *address = [[CNMutablePostalAddress alloc] init];
address.street = @"1234 Laurel Street";
address.city = @"Atlanta";
address.state = @"GA";
address.postalCode = @"30303";

Также проверьте:


Примечание

Информация о адресе может поступать из самых разных источников в iOS. Всегда проверяйте информацию перед ее использованием.