10

在尝试在 iOS 应用程序中设置 Apple Pay 时,我们遇到了 API 和预填充信息的问题。我们的用户流程允许用户在使用 Apple Pay 付款之前手动设置他们的地址、电子邮件和电话,因此如果他们决定这样做,我们希望确保用他们的输入填写 Apple Pay 提示。

根据开发指南,这应该像在 request.shippingContact 中设置这些值一样简单。但是,当我们这样做时,这些值将被忽略。

有什么文档没有告诉我们的吗?

PKContact *contact = [[PKContact alloc] init];  
contact.emailAddress = @"john@appleseed.com";
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;

苹果支付示例

4

1 回答 1

3

如文档中所述,我们需要正确验证地址值。我们应该使用有效的邮政编码传递有效的地址,请参见下面的代码。

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 中的多种来源。始终在使用信息之前对其进行验证。

于 2016-08-29T04:26:43.280 回答