Skip to content

Releases: Adyen/adyen-android

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

5.1.0

11 Dec 14:54
05c0582
Compare
Choose a tag to compare

New

Fixed

  • Fixed a bug where components would not be displayed in Jetpack Compose lazy lists.

Changed

4.13.4

23 Nov 13:58
dfef576
Compare
Choose a tag to compare

Note

If you are using WeChat Pay please update to this version or migrate to 5.x.x to make sure WeChat Pay will work for all Android versions.

Fixed

  • WeChatPay now works correctly on Android 11 and later. This fixes a known issue from previous 4.x.x versions.

Changed

  • Dependency versions:
    Name Version
    WeChat Pay 6.8.0

5.0.1

10 Nov 12:39
7722943
Compare
Choose a tag to compare

Fixed

  • @RestrictTo annotations no longer cause false errors with Android Studio and Lint.
  • Using the layout inspector or having view attribute inspection enabled in the developer options no longer causes a crash when viewing a payment method.
  • Implementing the :action module no longer gives a duplicate class error caused by a duplicate namespace.
  • For Drop-in, dismissing the gift card payment method no longer prevents further interaction.

Changed

5.0.0

18 Oct 10:35
4820936
Compare
Choose a tag to compare

For guidance on integrating with this version, have a look at the integration guide.

If your integration uses Android v4.13.3 and earlier, and you're upgrading it to use v5.0.0, you can follow the migration guide.

These are the changes between the beta and stable release. For the full release notes that include all the changes from v4.13.3, see the release notes in our Docs.

Breaking changes

  • Amount.EMPTY is removed. Make sure you pass amounts with a valid value and currency.

Fixed

  • @RestrictTo annotations no longer cause false errors with Android Studio Hedgehog (Beta).
  • The Drop-in bottom sheet will no longer shift position on the screen when launching some flows like redirect and 3D Secure 2.

Changed

4.13.3

25 Sep 15:24
92b7649
Compare
Choose a tag to compare

Fixed

  • Fixed Cash App payments being refused because of missing customerId during /payments/details call.

4.13.2

14 Sep 15:26
9c41b32
Compare
Choose a tag to compare

Changed

  • Updated device information collection during the 3D Secure 2 device fingerprinting process.

5.0.0-beta01

07 Sep 08:38
639ca08
Compare
Choose a tag to compare

⚠️ This is a beta release. Don't use it to accept payments in your live environment.

For guidance on integrating with this version, have a look at the integration guide.

Breaking changes

  • For Drop-in, you can now configure if you show a dialog to dismiss Drop-in with either a finished state or error state.

    • DropInServiceResult.Error now requires the ErrorDialog parameter.
    • DropInServiceResult.Finished now has an optional FinishedDialog parameter.
  • Analytics feature turned on by default. Find out what we track and how you can configure it.

    • The method for setting analytics configuration has changed:
    v5.0.0-beta01 Earlier versions
    setAnalyticsConfiguration(analyticsConfiguration: AnalyticsConfiguration) setAnalyticsEnabled(isAnalyticsEnabled: Boolean)
  • PaymentMethodDetails and its subclasses now have the checkoutAttemptId field.

  • You can no longer manually instantiate the Environment class and the baseUrl field has been removed.

New

  • You can now safely exclude any payment method from Drop-in. Do this by excluding the Adyen Checkout module that includes the payment method. For example:
    implementation('com.adyen.checkout:drop-in:5.0.0-beta01') {
        exclude group: 'com.adyen.checkout', module: 'card'
        exclude group: 'com.adyen.checkout', module: 'ideal'
    }
  • For cards:
    • The BIN value callback is invoked while the shopper inputs their card number. The callback uses up to the first 8 digits.
    • The BIN lookup callback is invoked when brands are detected on the card.
  • When the shopper is redirected to another app or browser, a new callback is invoked.
  • For Drop-in, you can now navigate the shopper back to the payment methods list, for example to load new payment methods. To do this, use DropInServiceResult.ToPaymentMethodsList.

Fixed

  • QR code payment methods no longer crash in some cases.
  • Rotating a device during the redirect flow no longer causes a crash.

Changed

4.13.1

01 Sep 10:13
3ff8f5b
Compare
Choose a tag to compare

Fixed

  • For cards that require the shopper to input their address:
    • When internet connection is lost while loading, it no longer crashes. Instead an error is returned.
    • The Country dropdown menu to select no longer displays no options. Previously, an error sometimes caused the menu to have no options, so the transaction couldn't be submitted.