【问题标题】:Unable to access Phone no, First-Last Name, Street from PKContact inside PKPaymentAuthorizationViewController delegate method didSelectShippingContact无法从 PKPaymentAuthorizationViewController 委托方法 didSelectShippingContact 中的 PKContact 访问电话号码、名字、街道
【发布时间】:2020-05-15 00:50:14
【问题描述】:

我正在使用 PKPaymentAuthorizationViewController 及其委托方法集成 Apple Pay。 当用户更改地址时,将触发以下委托方法:

- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didSelectShippingContact:(PKContact *)contact completion:(void (^)(PKPaymentAuthorizationStatus status, NSArray<PKShippingMethod *> *shippingMethods, NSArray<PKPaymentSummaryItem *> *summaryItems))completion

当我尝试从“联系人”访问电话号码时,它始终为空,而且姓名(名字、姓氏等)也为空。但所选的送货联系人包含姓名、电话号码、邮政地址等所有信息。

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 对象“联系人”缺少所需的信息。

【问题讨论】:

    标签: ios objective-c applepay


    【解决方案1】:

    我找到了解决方案,希望这可以帮助像我这样的人。

    https://developer.apple.com/documentation/apple_pay_on_the_web/applepaypayment/1916097-shippingcontact

    以上链接提示我无法在委托方法“didSelectShippingContact”中获取完整的地址信息,而是仅在用户使用委托中的 Touch ID、Face ID 或密码授权付款后提供方法“didAuthorizePayment”。这里我们有一个 PKPayment(付款)对象,这个对象包含我需要进一步处理以完成付款交易的所有地址/联系字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多