This method allows you get a new instance of KlarnaComponent
to manage payments for Klarna.
1 fun provideKlarnaComponent ( primerSessionIntent : PrimerSessionIntent ) : KlarnaComponent kotlin
copy
Sets the session intent to be used during session creation and tokenization.
An instance of KlarnaComponent
.
KlarnaComponent 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.
Get a Flow
of PrimerError objects that represent errors emitted by this component.
Subscribers can observe and handle errors using this Flow.
Update component with collected data by passing implementations of sealed interface.
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
componentValidationStatus
and receive the validation status when it's updated.
sealed interface KlarnaPaymentCollectableData A data class representing the step of choosing a Klarna Payment method.
Properties Context required for the creation of the payment view.
Url used by third-party apps to build the intent for returning to the app.
Payment category required for session creation.
Properties ID of the payment method category to be used while loading the payment view. The possible values are:
klarna pay_later pay_now pay_over_time direct_bank_transfer direct_debit Name of the payment method category. These names are dynamic depending on what payment method is in the category.
URL of the descriptive asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
URL of the stadard asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
Object representing the step of finalizing the Klarna payment.
KlarnaPaymentStep
is a class holding different output data for specific steps. Whenever start or submit methods are called, componentStep
will trigger the next step in case the call to the mentioned method was successful.
sealed interface KlarnaPaymentStep A data class representing the created payment session.
Properties The list of available Klarna payment categories.
Properties ID of the payment method category to be used while loading the payment view. The possible values are:
klarna pay_later pay_now pay_over_time direct_bank_transfer direct_debit Name of the payment method category. These names are dynamic depending on what payment method is in the category.
URL of the descriptive asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
URL of the stadard asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
A data class holding the Klarna payment view.
Properties The Klarna payment view.
A data class representing the authorized payment session.
Properties The state of the finalization.
Object representing the finalized payment session.
The PrimerValidationStatus
interface encompasses a range of validation statuses.
sealed interface PrimerValidationStatus Indicates that data is currently in the process of being validated.
Properties The data being validated.
Indicates that the data has successfully been validated.
Properties The successfully validated data.
Indicates that the data has been considered invalid after validation.
Properties List of PrimerValidationError
objects that represent data validation errors emitted by this component.
Properties A unique error identifier.
A error description.
A unique diagnostics id for the given error.
The data that failed validation.
Represents the status when an error occurred during the validation process.
Properties The specific PrimerError
that occurred during validation.
A unique error identifier.
A unique error code.
A error description.
A recovery suggestion for the given error. In case it's present, use it to try to recover from error.
A unique diagnostics id for the given error.
The data for which the error occurred.
1 2 3 4 5 6 7 class CheckoutActivity : AppCompatActivity ( ) { private val klarnaComponent by lazy { PrimerHeadlessUniversalCheckoutKlarnaManager ( viewModelStoreOwner = this ) . provideKlarnaComponent ( primerSessionIntent = PrimerSessionIntent . CHECKOUT ) } } kotlin
copy