ExtendedCheckoutConfig

class ExtendedCheckoutConfig : CheckoutConfig
extension ExtendedCheckoutConfig : CVarArg, CustomDebugStringConvertible, CustomStringConvertible, Equatable, Hashable, NSCopying, NSObjectProtocol

This class should contain all the extended featurs privy to first party or implicity trusted host applications. Those not explicity validated to be on the whitelist for the PayPal iOS Checkout SDK will find that all extended features in this class are ignored.

  • The closure format for upgrading auth state of the user in order to complete the Add Card flow

    Declaration

    Swift

    typealias AddCardStepUpCallback = (@escaping (AuthToken?, Error?) -> Void) -> Void
  • The closure format for analytics entry

    Declaration

    Swift

    typealias AnalyticsEntryCallback = (FPTIEntry) -> Void
  • The closure format for analytics event

    Declaration

    Swift

    typealias AnalyticsEventCallback = (FPTIEvent) -> Void
  • Communication from SDK to 1st or 2nd party consumer to allow them to handle these contingencies themselves.

    Declaration

    Swift

    typealias ResolveContingenciesCallback = (Contingencies, CheckoutSessionFlags?, @escaping (ResolveContingenciesResponse) -> Void) -> Void
  • The id required for the SCA contingency callback

    Declaration

    Swift

    typealias SCAContextID = String
  • The closure format for running an SCAContingency. The completion expects optionals of access token, ID token, and error. It will either be the first two or the last one

    Declaration

    Swift

    typealias SCAContingencyCallback = (ExtendedCheckoutConfig.SCAContextID, @escaping ((SCAStepUpResponse) -> Void)) -> Void
  • The app guid is passed from consumer app, stored in Keychain. It is utilized as a way to tie together events from different components when triaging issues on the server-side.

    Declaration

    Swift

    var appGuid: String?
  • Our background configurations for specifying ContentBackgrounds on pages.

    Declaration

    Swift

    var backgroundConfigs: [BackgroundConfig]
  • Undocumented

    Declaration

    Swift

    @available(*, deprecated, message: "Use the backgrounds member to define BackgroundConfigs")
    var brandedBackgroundCheckoutConfig: BrandedBackgroundConfig? { get set }
  • The button session id associated with the merchant from SPB (web to app).

    Declaration

    Swift

    var buttonSessionID: String?
  • Information about the channel used to start the checkout flow (native, mobile web, desktop web, etc)

    Declaration

    Swift

    var channel: Channel
  • A closure that allows apps to configure different processes such as startup and shutdown

    Declaration

    Swift

    var configureProcess: ProcessConfigurator?
  • A closure that allows apps to configure different views such as shipping view

    Declaration

    Swift

    var configureView: PageConfigurator?
  • The device id is passed from the consumer app, stored in Keychain. It is utilized as a way to tie together events from different components when triaging issues on the server side.

    Declaration

    Swift

    var deviceId: String?
  • Merchant’s domain

    Declaration

    Swift

    var domain: String?
  • Determines if SDK should skip updating any functionality/process that depends on a returned experiment and treatment value and defaults the functionality/process to its control state

    Declaration

    Swift

    var elmoExperimentsToSkip: [String]?
  • Allows merchants to force an experience on, for example Venmo (passed from SPB)

    Declaration

    Swift

    var enableFunding: [String]
  • External Logging

    Declaration

    Swift

    var externalLogs: [ExternalTracking]?
  • Merchant’s client ID

    Declaration

    Swift

    var facilitatorClientID: String?
  • Undocumented

    Declaration

    Swift

    var fundingSource: FundingProvider
  • This list of tuples defining any custom network traffic to handled during SDK operations for inbound and outbound traffic can be specified here.

    The tuple has three values, the first value is usually a String but can be any type of AnyHashable that uniquely identifies the NetworkOperation. The second value is the type of network action to perform; this can be any of .Inbound, .Outbound, or .InboundOutbound. The .InboundOutbound type gets invoked for both scenarios, but otherwise the supplied NetworkOperation closure, which is the third parameter, gets invoked either at the beginning (Inbound) or at the end (Outbound) of the SDK usage.

    Declaration

    Swift

    var networkOperations: [NetworkOperation]
  • Called right after a user clicks to Add Card natively. We need to upgrade the auth state of the user so that we can perform the Add Card action server side.

    Declaration

    Swift

    var onAddCardStepUp: ExtendedCheckoutConfig.AddCardStepUpCallback?
  • Called when SDK logs an analytics entry

    Declaration

    Swift

    var onAnalyticsEntry: ExtendedCheckoutConfig.AnalyticsEntryCallback?
  • Called when SDK logs an analytics event

    Declaration

    Swift

    var onAnalyticsEvent: ExtendedCheckoutConfig.AnalyticsEventCallback?
  • Callback to allow 1st or 2nd party consumer to handle contingencies themselves.

    Declaration

    Swift

    var onResolveContingencies: ExtendedCheckoutConfig.ResolveContingenciesCallback?
  • Called when Secure Customer Authentication is required at the end of a checkout. The token it uses will have been specified in the SCA section of the payload, and is not our normal auth/merchant token

    Declaration

    Swift

    var onSCAContingency: ExtendedCheckoutConfig.SCAContingencyCallback?
  • Undocumented

    Declaration

    Swift

    var pageUrl: String?
  • Presentation mode defines how pay sheet will be presented in the host app

    Declaration

    Swift

    var presentationMode: PresentationMode
  • A session ID generated from the Smart Payment Button will be required to authenticate the Firebase App. The sessionUID is retrieved from the merchant and then used with PayPal’s GraphQL to generate a sessionToken.

    Declaration

    Swift

    var sessionUID: String?
  • When transaction requires a shipping address and a user does not have one SDK cannot proceed and falls back to web. Setting this property to true allows SDK to proceed with responsibility to collect a shipping address and provide it to SDK moving to the host app.

    Declaration

    Swift

    var skipsShippingAddressContingency: Bool
  • The stickiness id associated passed from SPB

    Declaration

    Swift

    var stickinessID: String?
  • Indicates whether Billing Agreements are supported by a host or not. If not, the checkout flow will fallback to web if this is supported (see supportsWebFallbacks).

    Declaration

    Swift

    var supportsBillingAgreements: Bool
  • Indicates whether or not web fallbacks are supported

    Declaration

    Swift

    var supportsWebFallbacks: Bool
  • Used to determine whether we’re using Firebase in the current lifecycle

    Declaration

    Swift

    var usesFirebase: Bool { get }