Instance Method

paymentAuthorizationViewController(_:didSelect:completion:)

Tells the delegate that the user selected a shipping method.

Declaration

optional func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didSelect shippingMethod: PKShippingMethod, completion: @escaping (PKPaymentAuthorizationStatus, [PKPaymentSummaryItem]) -> Void)

Parameters

controller

The payment authorization view controller.

shippingMethod

The selected shipping method. This parameter contains one of the shipping methods included in the payment request.

completion

The completion block to be called with updated shipping information.

This block takes the following parameters:

status

The authorization status for the payment. For values, see PKPaymentAuthorizationStatus.

summaryItems

An array of PKPaymentSummaryItem objects that replaces the summary items for the current payment request.

Discussion

Use this method to update shipping costs based on the shipping address selected by the user, as previously passed to the delegate in the PKPaymentAuthorizationViewControllerDelegate method. If no address has been selected, use the prepopulated address on the payment request.

When this method is called, you create a new array of PKPaymentSummaryItem objects that represent the updated cost including shipping. For more information on creating summary items, see the PKPaymentRequest class’s paymentSummaryItems property.