Apple Pay 不会显示预填信息

Posted

技术标签:

【中文标题】Apple Pay 不会显示预填信息【英文标题】:Apple Pay will not display prefilled information 【发布时间】:2015-11-25 05:16:15 【问题描述】:

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

根据development guide,这应该像在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;

【问题讨论】:

你找到解决这个 Nathan 的方法了吗? @JamesAnderson 您使用的是哪个版本的 Xcode/iOS?您能否澄清一下您的环境和问题所在(帐单地址丢失或电子邮件丢失)?无法在 Xcode 8 beta 6 / iOS Simulator 9-10 重现该错误。 【参考方案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 中的多种来源。请务必在使用信息之前对其进行验证。

【讨论】:

以上是关于Apple Pay 不会显示预填信息的主要内容,如果未能解决你的问题,请参考以下文章

php WooCommerce:将Apple Pay按钮移至客户详细信息表单下方

iOS apple Pay 教程

银联 Apple Pay 支付集成

Apple Pay 令牌的交易金额不正确

是否可以从 Apple Pay 令牌中获取卡类型?

Apple Pay 弹出窗口未显示特定的默认送货地址