Skip to content

Releases: Adyen/adyen-android

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

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