Kotlin 2.0.21
io.primer:3ds-android:1.6.2
compile
and target
versions to 35
CardFormUIOptions.payButtonAddNewCard
to support the “Add New Card” option in the card form flow. Please check our docs for more informationcleanClientSessionCache
parameter to the cleanup
function. You can now control whether to clear the Client Session cache in both Drop-In and Headless integrations.1.1.0
io.primer:bom
If you’re using Klarna in your own code, you can switch to the BOM to automatically stay aligned with the supported version:implementation(platform("io.primer:bom:<version>")) implementation("io.primer:klarna-android")
This removes the need to manage Klarna versions manually.If you choose not to use the BOM, make sure you manually update to io.primer:klarna-android:1.1.0
PrimerSettings.apiVersion
. For more information see our SDK reference, Api Reference and Migration Guides.Primer.dismiss()
after the checkout sheet is already dismissed.v2.3
.ConcurrentModificationException
during SDK initialization.getPaymentMethodResource
method to access these native resources seamlessly. If you are using Headless integration, make sure to check our updated documentation about rendering of payment method buttons.
Native Payment Method Button
requirements, we have deprecated following methods:
DividerThemeData
that can be used for styling of dividers in Drop-In. Check out our documentation here.cursorColor
in InputThemeData
io.primer:3ds-android:1.5.0
If you are using the 3DS dependency in your code, you are required to update it and align with the supported version. Otherwise, 3DS will result in failure.1.4.3
version of the 3DS SDK (io.primer:3ds-android:1.4.3
).existingPaymentMethodRequired
to true. Check our guide on how to enable this feature.1.4.2
version of the 3DS SDK (io.primer:3ds-android:1.4.2
).Primer.instance.showPaymentMethod(..)
). This concern has been promptly addressed and resolved.CHECKOUT
payment intents for Klarna Drop-inPrimerHeadlessUniversalCheckoutKlarnaManager
that provides access to the KlarnaComponent
.
Using the KlarnaComponent
you can seamlessly integrate Klarna, with a custom payment category selection UI.
Consult the guide to get a sense of how to seamlessly integrate Klarna.io.primer:klarna-android:1.0.2
If you are using the Klarna dependency in your code, you are required to update it in align with the supported version. Otherwise, Klarna will result in failure.1.4.1
version of the 3DS SDK (io.primer:3ds-android:1.4.1
).io.primer:3ds-android:1.4.0
). We recommend upgrading to this version as it brings new LOA Reference Number for all protocol versions.DEBUG
and you are utilizing our default logger implementation, the complete request and response bodies are now logged to the console.if you opt for a custom PrimerLogger implementation, as a security measure, any Personally Identifiable Information (PII) and Payment Card Industry (PCI) data will be automatically obfuscated.PrimerHeadlessUniversalCheckoutComponentWithRedirectManager
that provides access to BanksComponent
. Using the BanksComponent
you can easily:io.primer:3ds-android:1.3.0
)PrimerLogger
that allows you to listen to SDK logs on a specified log level, or provide your own PrimerLogger
implementation in order to listen and process Primer SDK logs.Check out our detailed SDK reference here.phoneCountryDiallingCode
to be passed. Now you can pass full phone number and SDK will parse and validate phone number.PrimerHeadlessUniversalCheckoutNolPayManager
that provides following features:Google Pay
method returns PAN_ONLY
token in Headless integrationio.primer:3ds-android:1.2.0
from now on.amount
in client session when vaulting PayPalPrimerHeadlessUniversalCheckoutVaultManager.newInstance()
which returns an instance of PrimerHeadlessUniversalCheckoutVaultManager
. It provides the following features:2.2.0
1.0.1
3.3.3
Java
when using Primer SDKPrimerPaymentMethodAsset
now exposes the payment method’s friendly namesubmit
method of PrimerHeadlessUniversalCheckoutCardComponentsManager
would return error due to wrong formatting of expiry date.PrimerCardComponentsManagerListener
has been renamed to PrimerHeadlessUniversalCheckoutCardComponentsManagerListener
.PrimerHeadlessUniversalCheckoutNativeUiManager
has been changed to io.primer.android.components.manager.nativeUi
.PrimerHeadlessUniversalCheckoutVaultManager.newInstance()
which returns an instance of PrimerHeadlessUniversalCheckoutVaultManager
. It provides the following features:submit
method of PrimerHeadlessUniversalCheckoutCardComponentsManager
would return error due to wrong formatting of expiry date.PrimerCardComponentsManagerListener
has been renamed to PrimerHeadlessUniversalCheckoutCardComponentsManagerListener
.2.2.0
3.3.3
Java
when using Primer SDKPrimerHeadlessUniversalCheckoutNativeUiManager
has been changed to io.primer.android.components.manager.nativeUi
.PrimerPaymentMethodAsset
now exposes the payment method’s friendly nameio.primer:klarna-android:1.0.1
from now on.
io.primer:3ds-android:1.1.2
from now on.
captureBillingAddress = true
to PrimerGooglePayOptions
io.primer:3ds-android:1.1.1
from now on.is3DSOnVaultingEnabled
Above flow is now obsoleted and 3DS will always follow workflows.2.13.0
. We recommend updating to this 2.13.1
version.PrimerCheckoutQRCodeInfo
containing the data needed to build their awesome UI / UX on top.For PromptPay specifically, the object will be PromptPayCheckoutAdditionalInfo
fun onAdditionalInfoReceived(info: PrimerCheckoutAdditionalInfo) = Unit
Payment methods' types in version prior to this one (<2.4.0) were represented by a
enum PrimerPaymentMethodType` .In this version, we are no longer exposing the enum
, and return a plain String
instead.Headless Universal Checkout
. You should now only care about creating best possible and seamless experience for your users, we will take care of the rest. Please take a look at our simple explanation about the changes we made.CheckoutEvent.TokenizationSuccess
and CheckoutEvent.ResumeSuccess
callbacks:2.0.0
no manual payment handling is required! Payment creation is now, as mentioned above, seamless.Feel free to rip out the above mentioned callbacks when migrating to version 2.0.0
and enjoy the feeling of utter relaxation as all your payment handling is now done by Universal Checkout 💆For the nerds ❤️
fetchSavedPaymentInstruments
and getSavedPaymentMethods
methodsPrimer.cleanup
method. *This method should be called when disposing the listener in order to free Primer SDK resource.*
PrimerSettings.order
and PrimerSettings.customer
in favour of configuration set through client session creationfetchSavedPaymentInstruments
method has been deprecated
PrimerTheme
. PrimerTheme.create()
is now deprecated. Use PrimerTheme.build()
or resource files to create custom themes.Primer
singleton object has been redesigned with a new initialisation flow. Please refer to the quick start guide for further info. Primer.initialize()
is now deprecated.Apaya
phone number. Please see documentation for integration steps.Apaya
payment method. Please see documentation for integration steps.doNotShowUi = true
addressed.completionHandler
added to TokenizationSuccess
event. Call this to complete flow with error/success screen after completing payment action.CheckoutEvent.Exit
& its CheckoutExitReason
parameter to listen to the following events: DISMISSED_BY_USER
or ERROR
(error thrown by Klarna).UniversalCheckout.dismiss(clearListeners = true)
. This is the recommended way to complete the session before navigating to a different activity/fragment.clearAllListeners
when calling showVault()
/ showCheckout()
. Set this flag as true
, if you need to call UniversalCheckout.initialise()
more than once.minifyEnabled = true
caused the app to crash. This has been addressed so that the SDK will run with all forms of app shrinking.Klarna
object it is now possible to set a webViewTitle
for the Klarna web view’s toolbar.webBrowserRedirectScheme
param to pass in custom app link scheme when calling the SDK with showVault()
/showCheckout()
.preferWebview
for showing Klarna checkout flow in an integrated web view instead of a separate browser window.UniversalCheckout.showError()
when wishing to display the default SDK error view.locale
is now optionally set in UniversalCheckout.initialize()
and is used solely to determine language and localisation.countryCode
parameter has been added to showVault()
/showCheckout()
. This is used to determine location for different payment sessions (e.g. Klarna). If a country code has already been passed in when creating a Primer client token on the backend this SDK’s countryCode
value is ignored.