【问题标题】:Can we add a new shipping address in Apple Pay我们可以在 Apple Pay 中添加新的送货地址吗
【发布时间】:2016-04-20 18:40:39
【问题描述】:

我已经在我的应用程序中添加了“送货地址”我想将该地址分配为shippingAddressshippingContact,同时用户使用Apple Pay付款。

我尝试使用以下代码“shippinAddress”是我的字典 已经有一个我想用作 Apple Pay Shipping 的地址 地址。

PKPaymentRequest *paymentRequest = [Stripe paymentRequestWithMerchantIdentifier:merchantId];
paymentRequest.shippingContact = [self getShippingAddress_ApplePay];

-(PKContact*)getShippingAddress_ApplePay
{

PKContact *address = [[PKContact alloc] init];

NSPersonNameComponents *personName = [[NSPersonNameComponents alloc] init];
personName.givenName = [shippinAddress valueForKey:@"firstname"];
personName.familyName = [shippinAddress valueForKey:@"lastname"];


CNMutablePostalAddress * postalAddress = [[CNMutablePostalAddress alloc] init];
postalAddress.street = [shippinAddress valueForKey:@"street"];
postalAddress.city = [shippinAddress valueForKey:@"city"];
postalAddress.state = [shippinAddress valueForKey:@"region"];
postalAddress.postalCode = [shippinAddress valueForKey:@"postcode"];
postalAddress.ISOCountryCode = [shippinAddress valueForKey:@"country_id"];

CNPhoneNumber *phone = [[CNPhoneNumber alloc] initWithStringValue:[shippinAddress valueForKey:@"telephone"]];

address.name = personName;
address.emailAddress = [KCustomerInfo valueForKey:@"email"];
address.postalAddress = postalAddress;
address.phoneNumber = phone;

return address;

}

paymentAuthorizationViewController 出席时我没有收到此地址。

我也试过设置这个paymentRequest.requiredShippingAddressFields = PKAddressFieldAll;

任何人都可以建议,我们可以这样分配吗?我是的,那么我使用的方式有错吗?

谢谢

【问题讨论】:

    标签: ios objective-c iphone stripe-payments applepay


    【解决方案1】:

    只要显示PKPaymentAuthorizationController,基本上就没有办法获取地址。 您需要等待委托回调:

    - (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
                           didAuthorizePayment:(PKPayment *)payment
                                    completion:(void (^)(PKPaymentAuthorizationStatus))completion
    

    如您所知,您可以从PKPayment 对象中提取地址信息。

    如果用户在PKPaymentAuthorizationController 中选择地址,也会触发回调:

    - (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller
                       didSelectShippingMethod:(PKShippingMethod *)shippingMethod
                                    completion:(void (^)(PKPaymentAuthorizationStatus status, NSArray<PKPaymentSummaryItem *> *summaryItems))completion;
    

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

    更新 好吧,看来我误解了这个问题。 要将地址传递给 PKAuthController,您需要将该地址存储在相应的通讯簿联系人中。

    【讨论】:

    • @Hi.. 感谢您的回答,实际上我想要的是我的地址在 Apple Pay 之外,就像在我的一个控制器中一样,我已经向用户询问了地址,现在我想将该地址用作送货地址在 Apple Pay 中。那么我可以分配那个地址还是只有我们可以通过授权控制器添加地址?
    • PKPaymentAuthController 正在使用地址簿中存储的联系人。您可以做的一件事是将地址存储在相应的用户联系人中,然后它会自动出现在 PKAuthController 中,我认为 .. 应该值得一试。知道会很有趣。
    • 嗯好吧,让我检查一下
    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    相关资源
    最近更新 更多