Skip to content

Releases: Adyen/adyen-android

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

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.