This method allows you get a new instance of KlarnaComponent to manage payments for Klarna.

1
fun provideKlarnaComponent(primerSessionIntent: PrimerSessionIntent): KlarnaComponent
kotlin
copy

Parameters

primerSessionIntent
PrimerSessionIntentRequired
Sets the session intent to be used during session creation and tokenization.

Returns

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
Context
Context required for the creation of the payment view.
Url used by third-party apps to build the intent for returning to the app.
paymentCategory
KlarnaPaymentCategory
Payment category required for session creation.
Properties
identifier
StringRequired
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
StringRequired
Name of the payment method category. These names are dynamic depending on what payment method is in the category.
descriptiveAssetUrl
StringRequired
URL of the descriptive asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
standardAssetUrl
StringRequired
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
paymentCategories
List<KlarnaPaymentCategory>
The list of available Klarna payment categories.
Properties
identifier
StringRequired
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
StringRequired
Name of the payment method category. These names are dynamic depending on what payment method is in the category.
descriptiveAssetUrl
StringRequired
URL of the descriptive asset. Using this dynamic asset will make sure that changes from Klarna be automatically propagated.
standardAssetUrl
StringRequired
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
paymentView
PrimerKlarnaPaymentView
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
collectableData
KlarnaPaymentCollectableData

The data being validated.

Indicates that the data has successfully been validated.
Properties
collectableData
KlarnaPaymentCollectableData

The successfully validated data.

Indicates that the data has been considered invalid after validation.
Properties
validationErrors
List<PrimerValidationError>

List of PrimerValidationError objects that represent data validation errors emitted by this component.

Properties
errorId
StringRequired
A unique error identifier.
description
StringRequired
A error description.
diagnosticsId
StringRequired
A unique diagnostics id for the given error.
collectableData
KlarnaPaymentCollectableData

The data that failed validation.

Represents the status when an error occurred during the validation process.
Properties
error
PrimerError

The specific PrimerError that occurred during validation.

errorId
StringRequired
A unique error identifier.
errorCode
String?
A unique error code.
description
StringRequired
A error description.
A recovery suggestion for the given error. In case it's present, use it to try to recover from error.
diagnosticsId
StringRequired
A unique diagnostics id for the given error.
collectableData
KlarnaPaymentCollectableData

The data for which the error occurred.

Example

1234567
class CheckoutActivity : AppCompatActivity() {  // 👇 Add this  private val klarnaComponent by lazy {    PrimerHeadlessUniversalCheckoutKlarnaManager(viewModelStoreOwner = this)            .provideKlarnaComponent(primerSessionIntent = PrimerSessionIntent.CHECKOUT)  }}
kotlin
copy