STPApplePayContext

@objc(STPApplePayContext)
public class STPApplePayContext : NSObject, PKPaymentAuthorizationControllerDelegate

A helper class that implements Apple Pay. Usage looks like this:

  1. Initialize this class with a PKPaymentRequest describing the payment request (amount, line items, required shipping info, etc)
  2. Call presentApplePayOnViewController:completion: to present the Apple Pay sheet and begin the payment process 3 (optional): If you need to respond to the user changing their shipping information/shipping method, implement the optional delegate methods
  3. When the user taps ‘Buy’, this class uses the PaymentIntent that you supply in the applePayContext:didCreatePaymentMethod:completion: delegate method to complete the payment
  4. After payment completes/errors and the sheet is dismissed, this class informs you in the applePayContext:didCompleteWithStatus: delegate method
  5. Seealso

    https://stripe.com/docs/apple-pay#native for a full guide

    Seealso

    ApplePayExampleViewController for an example
  • Initializes this class. @note This may return nil if the request is invalid e.g. the user is restricted by parental controls, or can’t make payments on any of the request’s supported networks @note If using Swift, using ApplePayContextDelegate is recommended over STPApplePayContextDelegate.

    Declaration

    Swift

    @objc(initWithPaymentRequest:delegate:)
    public required init?(
        paymentRequest: PKPaymentRequest,
        delegate: _stpinternal_STPApplePayContextDelegateBase?
    )

    Parameters

    paymentRequest

    The payment request to use with Apple Pay.

    delegate

    The delegate.

  • Presents the Apple Pay sheet from the key window, starting the payment process. @note This method should only be called once; create a new instance of STPApplePayContext every time you present Apple Pay.

    Declaration

    Swift

    @available(iOSApplicationExtension, unavailable, message: "Use `presentApplePay(from:completion:﹚` in App Extensions.")
    @available(macCatalystApplicationExtension, unavailable, message: "Use `presentApplePay(from:completion:﹚` in App Extensions.")
    @objc(presentApplePayWithCompletion:)
    public func presentApplePay(completion: STPVoidBlock? = nil)

    Parameters

    completion

    Called after the Apple Pay sheet is presented

  • Presents the Apple Pay sheet from the specified window, starting the payment process. @note This method should only be called once; create a new instance of STPApplePayContext every time you present Apple Pay.

    Declaration

    Swift

    @objc(presentApplePayFromWindow:completion:)
    public func presentApplePay(from window: UIWindow?, completion: STPVoidBlock? = nil)

    Parameters

    window

    The UIWindow to host the Apple Pay sheet

    completion

    Called after the Apple Pay sheet is presented

  • Presents the Apple Pay sheet from the specified view controller, starting the payment process. @note This method should only be called once; create a new instance of STPApplePayContext every time you present Apple Pay. @deprecated A presenting UIViewController is no longer needed. Use presentApplePay(completion:) instead.

    Declaration

    Swift

    @available(*, deprecated, renamed: "presentApplePay(completion:﹚", message: "Use `presentApplePay(completion:﹚` instead.")
    @objc(presentApplePayOnViewController:completion:)
    public func presentApplePay(
        on viewController: UIViewController,
        completion: STPVoidBlock? = nil
    )

    Parameters

    viewController

    The UIViewController instance to present the Apple Pay sheet on

    completion

    Called after the Apple Pay sheet is presented

  • The API Client to use to make requests. Defaults to STPAPIClient.shared

    Declaration

    Swift

    @objc
    public var apiClient: STPAPIClient

Helpers