无法从 PKPaymentAuthorizationViewController 委托方法 didSelectShippingContact 中的 PKContact 访问 Phone 否、姓氏、街道
Unable to access Phone no, First-Last Name, Street from PKContact inside PKPaymentAuthorizationViewController delegate method didSelectShippingContact
我正在使用 PKPaymentAuthorizationViewController 及其委托方法集成 Apple Pay。
当用户更改地址时,将触发以下委托方法:
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didSelectShippingContact:(PKContact *)contact completion:(void (^)(PKPaymentAuthorizationStatus status, NSArray<PKShippingMethod *> *shippingMethods, NSArray<PKPaymentSummaryItem *> *summaryItems))completion
当我尝试从 'contact' 访问 Phone 号码时,它总是空的,名字(名字、姓氏等)也是空的。但是所选的送货联系人具有姓名、phone 号码、邮政地址等所有信息。
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 对象 'contact' 缺少所需的信息。
我找到了解决办法,希望这对像我这样的人有所帮助。
以上link提示我无法在委托方法'didSelectShippingContact'中获取完整的地址信息,而是只有在用户使用Touch ID授权付款后才会提供,委托方法中的面容 ID 或密码 'didAuthorizePayment'。这里我们有一个 PKPayment(付款)对象,该对象包含我需要进一步处理以完成付款交易的所有 Address/Contact 字段。
我正在使用 PKPaymentAuthorizationViewController 及其委托方法集成 Apple Pay。 当用户更改地址时,将触发以下委托方法:
- (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller didSelectShippingContact:(PKContact *)contact completion:(void (^)(PKPaymentAuthorizationStatus status, NSArray<PKShippingMethod *> *shippingMethods, NSArray<PKPaymentSummaryItem *> *summaryItems))completion
当我尝试从 'contact' 访问 Phone 号码时,它总是空的,名字(名字、姓氏等)也是空的。但是所选的送货联系人具有姓名、phone 号码、邮政地址等所有信息。
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 对象 'contact' 缺少所需的信息。
我找到了解决办法,希望这对像我这样的人有所帮助。
以上link提示我无法在委托方法'didSelectShippingContact'中获取完整的地址信息,而是只有在用户使用Touch ID授权付款后才会提供,委托方法中的面容 ID 或密码 'didAuthorizePayment'。这里我们有一个 PKPayment(付款)对象,该对象包含我需要进一步处理以完成付款交易的所有 Address/Contact 字段。