Skip to content

Releases: Adyen/adyen-android

5.7.1

14 Nov 12:51
Compare
Choose a tag to compare

Fixed

  • For the Address Lookup functionality:
    • Address data is now correctly saved to PaymentComponentData.
    • Address fields that were edited manually no longer lose their state when starting Lookup mode.

5.7.0

14 Oct 13:14
6c5f6d2
Compare
Choose a tag to compare

New

Warning

For Twint Components integrations, you must now use TwintComponent instead of InstantPaymentComponent.

  • For French meal vouchers, the following payment method types are now available:

    • Up. Payment method type: mealVoucher_FR_groupeup.
    • Natixis. Payment method type: mealVoucher_FR_natixis.
    • Sodexo. Payment method type: mealVoucher_FR_sodexo.
    • Learn to configure French meal vouchers.
  • For API-only integrations with encrypted card details, you can now use the following classes to validate corresponding fields:

    Class Description
    CardNumberValidator Validates the card number field.
    CardExpiryDateValidator Validates the expiry date field.
    CardSecurityCodeValidator Validates the security code field.
  • Support for the following locales:

    Locale Values
    Catalan ca-ES
    Icelandic is-IS
    Bulgarian bg-BG
    Estonian et-EE
    Latvian lv-LV
    Lithuanian lt-lT

Fixed

  • When parsing JSON objects with explicit null values, JSON deserialization no longer returns the coerced null string.

Improved

  • For UPI Intent, if the shopper selects the Continue button without selecting an UPI option, an error message now shows.
  • For Drop-in, in the navigation bar, the accessibility of the Back/Close button is improved.

Changed

Deprecated

  • The style for payment method list headers. Use the new style instead.

    Previous Now
    AdyenCheckout.TextAppearance.HeaderTitle AdyenCheckout.TextAppearance.HeaderLabel
  • The com.adyen.checkout.instant.ActionHandlingMethod method. Use the new method instead.

    Previous Now
    com.adyen.checkout.instant.ActionHandlingMethod com.adyen.checkout.components.core.ActionHandlingMethod

5.6.0

09 Jul 14:44
a5f3075
Compare
Choose a tag to compare

New

  • For Google Pay on Advanced flow, onSubmit now returns threeDS2SdkVersion in the paymentMethod object that you must pass in your /payments request to correctly trigger the 3D Secure 2 flow.

Fixed

  • On Android API versions 21 to 25, the NoSuchMethodError no longer occurs during the 3D Secure 2 challenge flow.
  • When using R8 to shrink your code, CIRCULAR REFERENCE: com.android.tools.r8.utils.b: Missing class... errors no longer occur.

Changed

4.13.6

09 Jul 14:03
5ca4507
Compare
Choose a tag to compare

Fixed

  • On Android API versions 21 to 25, the NoSuchMethodError no longer occurs during the 3D Secure 2 challenge flow.

Changed

  • Dependency versions:
    Name Version
    Adyen 3DS2 2.2.19

5.5.0

21 Jun 10:09
f945b9c
Compare
Choose a tag to compare

New

  • Support for the UPI Intent flow, where the shopper can choose a UPI app to pay through. They are redirected to and complete the payment on the selected app.
  • The new iDEAL payment flow where the shopper is redirected to the iDEAL payment page to select their bank and authorize the payment.

Improved

  • Drop-in navigation:

    • Added the top navigation bar.
    • Disabled the dragging gesture that caused Drop-in to be dismissed.
    • When the shopper navigates back from an additional action screen (for example Await), Drop-in is dismissed.
  • Autofill support for the following:

    • For gift cards, the gift card number and PIN fields.
    • For UPI Virtual Payments, the address field.
    • For payment methods that use them, the address input fields.

Changed

Deprecated

We recommend that you remove the following from your integration.

  • For IdealComponent:
    • isConfirmationRequired()
    • submit()
  • For iDEAL configuration:
    • setViewType()
    • setHideIssuerLogos()
    • setSubmitButtonVisible()

5.4.0

30 May 12:12
c08b028
Compare
Choose a tag to compare

New

CheckoutConfiguration(
    environment = environment,
    clientKey = clientKey,
    ..
) {
    // Optionally pass the payment method type to only configure it for the specific payment method.
    instantPayment(PaymentMethodTypes.TWINT) {
        setActionHandlingMethod(ActionHandlingMethod.PREFER_WEB)
    }
}

Fixed

  • Fixed some memory leaks.
  • In case of a debug build, Drop-in no longer overrides the log level.
  • For cards, when a shopper does not select an address, the address lookup function now displays a validation error.
  • Actions no longer crash when your app uses obfuscation.
  • When handling a 3D Secure 2 challenge using Checkout API v66 or earlier, Drop-in no longer throws an error.
  • If the app process unexpectedly terminates when handling actions, the state is now restored and you can proceed with the payment flow.
  • For /sessions, fixed an issue where the setEnableRemovingStoredPaymentMethods flag in the Drop-in configuration was ignored.

Changed

4.13.5

02 May 10:28
2d10226
Compare
Choose a tag to compare

Changed

  • Dependency versions:
    Name Version
    Adyen 3DS2 2.2.17

5.3.1

10 Apr 12:25
ba2264f
Compare
Choose a tag to compare

Fixed

  • For Drop-in and Components, when ?android:attr/textColor is not defined in your own theme, the Card Component no longer crashes.
  • The onAdditionalDetails event is now triggered only once. Previously, the event was triggered multiple times in some edge cases.
  • The build output no longer contains warnings about multiple substitutions specified in non-positional format in string resources.
  • For the Card Component, we fixed localization issues that occurred when using the Address Lookup functionality.
  • Overriding some of the XML styles without specifying a parent style no longer causes a build error.

Removed

  • You can no longer use functions like CheckoutConfiguration.getCardConfiguration() or CheckoutConfiguration.getDropInConfiguration() to get configurations from the CheckoutConfiguration object. When starting Drop-in or Components, pass the full CheckoutConfiguration object.

Changed

5.3.0

12 Mar 14:09
c8705d4
Compare
Choose a tag to compare

New

  • A new way to create a configuration using DSL to be more declarative and concise:
CheckoutConfiguration(
    environment = environment,
    clientKey = clientKey,
    shopperLocale = shopperLocale,
    amount = amount,
) {
    dropIn {
        setEnableRemovingStoredPaymentMethods(true)
    }
    
    card {
        setHolderNameRequired(true)
        setShopperReference("...")
    }

    adyen3DS2 {
        setThreeDSRequestorAppURL("...")
    }
}

Warning

If you use the new configuration DSL, pass the CheckoutConfiguration object as it is when starting Drop-in or Components.

Do not use the functions to get configurations (such as CheckoutConfiguration.getDropInConfiguration() or CheckoutConfiguration.getCardConfiguration()). These functions will be removed in the following release.

  • For the Card Component, you can use the new Address Lookup functionality.
  • For voucher actions: when the url or downloadUrl is not included, the shopper has the option to select Save as image and save the voucher to the device's Downloads folder.
  • You can now set your own AdyenLogger instance with AdyenLogger.setLogger. This gives the ability to intercept logs and handle them in your own way.
  • Instructions to use the testing app in the repository. You can follow How to migrate section here.
  • Payment methods:
    • Multibanco. Payment method type: multibanco.
    • Pay Easy. Payment method type: econtext_atm.
    • Convenience Stores Japan. Payment method type: econtext_stores
    • Online Banking Japan. Payment method type: econtext_online.
    • Seven-Eleven: Payment method type: econtext_seven_eleven

Fixed

  • When building minifyEnabled without the kotlin-parcelize plugin in your project, the build should no longer crash.
  • When handling actions, you no longer get the IllegalArgumentException: Unsupported delegate type error that causes a crash.

Deprecated

  • When creating a configuration, the Builder constructors with a Context is deprecated. You can now omit the context parameter.
  • PermissionException. Handle permissions through ActionComponentCallback, SessionComponentCallback, or ComponentCallback callbacks instead.
  • The styles for vouchers have been changed:
    • Previous (v5.2.0 or earlier) Now (v5.3.0)
      AdyenCheckout.Voucher.Description.Bacs AdyenCheckout.Voucher.Simple.Description
      AdyenCheckout.Voucher.Description.Boleto AdyenCheckout.Voucher.Full.Description
      AdyenCheckout.Voucher.ExpirationDateLabel AdyenCheckout.Voucher.InformationFieldLabel
      AdyenCheckout.Voucher.ExpirationDate AdyenCheckout.Voucher.InformationFieldValue
      AdyenCheckout.Voucher.ButtonCopyCode AdyenCheckout.Voucher.Button.CopyCode
      AdyenCheckout.Voucher.ButtonDownloadPdf AdyenCheckout.Voucher.Button.DownloadPdf
  • Logger.LogLevel has been deprecated.
    • Previous (v5.2.0 or earlier) Now (v5.3.0)
      Logger.LogLevel AdyenLogLevel
      AdyenLogger.setLogLevel(logLevel: Int) AdyenLogger.setLogLevel(level: AdyenLogLevel)

Changed

  • When creating a configuration, the shopperLocale parameter is now optional.
    • Sessions flow: when you don't set it, the shopper locale is set to the value included in the /sessions request.
    • Advanced flow: when you don't set it, the shopper local is set to the primary user locale on the device.
  • For Drop-in, all actions now start in expanded mode.
  • For the Google Pay Component, you no longer need to manually import the 3ds2 module to handle transactions that require Native 3D Secure 2 challenge.
  • If you use DropInServiceResult.Error without specifying an error message, the default has changed from Error sending payment. Please try again. to An unknown error occurred.
  • For the Sessions flow:
    • When starting Drop-in (with DropIn.startPayment) or creating a Component (with YourComponent.PROVIDER.get), the configuration parameter is now optional.
    • When using CheckoutSessionProvider.createSession to create a CheckoutSession, you can pass only environment and clientKey instead of the whole configuration.
    • Removing stored payment methods is now handled internally. You no longer need to override the onRemoveStoredPaymentMethod function.
  • Dependency versions:
    Name Version
    Kotlin 1.9.22
    AndroidX Compose compiler 1.5.8
    AndroidX Compose Activity 1.8.2
    Material Design 1.11.0

5.2.0

30 Jan 15:35
796b359
Compare
Choose a tag to compare

New

Improved

  • The integration now uses JSON Web Encryption (JWE) with RSA OAEP 256 and AES GCM 256 for encryption. You do not need to make any changes to your integration.

Fixed

  • For Drop-in, error dialogs no longer display user unfriendly messages when using the Sessions flow.
  • Overriding some of the XML styles without specifying a parent style no longer causes a build error.
  • The Await and QR Code action components no longer get stuck in a loading state after the payment is completed.

Changed