After creating an instance of the PrimerHeadlessUniversalCheckout.ComponentWithRedirectManager you must use one of the compatible provide methods which will provide the component that can be used to build the flow. The method provide is compatible with iOS 13 and above.

12
@available(iOS 13, *)public func provide<PrimerHeadlessMainComponent>(paymentMethodType: String) throws -> PrimerHeadlessMainComponent? where PrimerCollectableData: Any, PrimerHeadlessStep: Any
swift
copy

Parameters

Parameters
paymentMethodType
StringRequired

A unique string identifier for the payment method. Supported payment methods for current client session are returned in primerHeadlessUniversalCheckoutDidLoadAvailablePaymentMethods. For Component with redirect manager, the supported payment method is ADYEN_IDEAL.

Type parameters

Data,Step
PrimerHeadlessMainComponent where Data == BanksCollectableData, Step == BanksStepRequired

The type of the PrimerHeadlessMainComponent implementation to return.

Supported types
TypepaymentMethodType
BanksComponentADYEN_IDEAL

Returns

An instance conforming to the PrimerHeadlessMainComponent protocol. The PrimerHeadlessMainComponent protocol conforms to the PrimerHeadlessCollectDataComponent protocol.

PrimerHeadlessMainComponent
PrimerHeadlessCollectDataComponent
Data
PrimerCollectableData
The Data associated type
Step
PrimerHeadlessStep
The Step associated type
Initialize the component by calling the start function. This method should be called only once.

Call submit function in order to process collected data and move component to next state.

errorDelegate
PrimerHeadlessErrorableDelegate
Error delegate will be triggered every time an error is thrown in the process.
1
func didReceiveError(error: PrimerError)
swift
copy
validationDelegate
PrimerHeadlessValidatableDelegate
Validation delegate will be triggered every time collected data is updated.
1
func didUpdate(validationStatus: PrimerValidationStatus, for data: PrimerCollectableData?)
swift
copy

PrimerValidationStatus is an enum that represents the different validation statuses in the Primer SDK. It helps to communicate the state of validation for a particular process, providing clear categorization of validation states.

enum PrimerValidationStatus
Enum case representing the ongoing validation state. This indicates that the validation process is currently in progress.
Enum case representing a successful validation state. This indicates that the validation process has completed successfully and the data is valid.
Enum case representing an unsuccessful validation state due to validation errors. This indicates that the validation process has completed but has found one or more errors in the data.
Associated Value
errors
[PrimerValidationError]
An array of `PrimerValidationError` representing the specific validation errors found.
Enum case representing an error state due to an unexpected issue. This indicates that an unexpected error has occurred during the validation process.
Associated Value
error
PrimerError
A `PrimerError` representing the unexpected error that occurred.
stepDelegate
PrimerHeadlessSteppableDelegate

BanksStep is a enum class holding different output data for specific steps. Whenever submit method is called, stepDelegate will trigger the next step in case the call to the mentioned method was successful.

In the case of ADYEN_IDEAL, the steps return will be of type BanksStep

enum BanksStep

Enum member representing the step of loading data for the form redirect component.

Enum member representing the step of issuing banks retrieved.
Properties
banks
[IssuingBank]

The issuing banks array associated with this payment flow.

IssuingBankThe `IssuingBank` class provides properties to hold bank details.
Properties
id
String
The string bank id
name
String
The bank name string
The bank icon url string
Boolean indicating whether the bank is disabled
1
func didReceiveStep(step: PrimerHeadlessStep)
swift
copy

Update component with collected data by passing an enum representing collectable data. This method can be called at any point, even if you have only partially collected data. To validate the partially collected data, you can refer to the validationDelegate.

In case of ADYEN_IDEAL, the Data will be of type BanksCollectableData

enum BanksCollectableData
Enum member representing the bank id.
Properties
bankId
String

The string bank id

Enum member representing the text used for filtering the list of banks by name.
Properties
The text used for filtering the list of banks by name.
Supported types
BanksComponent
PrimerHeadlessMainComponent<BanksCollectableData, BanksStep>

The BanksComponent provides a protocol extending the PrimerHeadlessMainComponent protocol where Data is of type BanksCollectableData and Step is of type BanksStep

1
public protocol BanksComponent: PrimerHeadlessMainComponent where Data == BanksCollectableData, Step == BanksStep { }
swift
copy

Throws

Parameters

An error that will be thrown in case the provide method has been called using unsupported paymentMethodType.

Supported payment methods for current client session are returned in the `onAvailablePaymentMethodsLoaded` delegate.

Currently, the supported payment method types are:
  • ADYEN_IDEAL

An error that will be thrown in case the provide method fails because of sdk not correctly used.