Reputation: 24606
While trying to setup Apple Pay in an iOS app we've run into an issue with the API and pre-filling information. Our user flow allows the user to manually set their address, email and phone prior to paying with Apple Pay, so we want to be sure to fill the Apple Pay prompt with their inputs if they decide to do so.
According to the development guide, this should be as simple as setting these values in the request.shippingContact. However, when we do this, the values are ignored.
Is there something the documentation is not telling us?
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;
Upvotes: 10
Views: 450
Reputation: 4825
As mentioned in the documentation we need to validate the address values properly. We should pass valid address with valid postal code, see code below.
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";
Also check:
NOTE
Upvotes: 3