Skip to content

Releases: Adyen/adyen-android

4.12.1

22 Jun 13:25
c260144
Compare
Choose a tag to compare

Fixed

  • For 3D Secure 2, consecutive payments no longer fail. Previously, if the challenge failed, retrying the payment failed in some cases.

4.12.0

31 May 09:46
399f7cb
Compare
Choose a tag to compare

New

  • Payment method: Cash App Pay.

Fixed

  • For Google Pay, serializing the shipping address parameters no longer causes an error.
  • For WeChat Pay on Android 11, an API restriction no longer causes an error.

Removed

  • For 3D Secure 2, the threeDSRequestorAppURL will not have a default value anymore. You can set it manually using:
Adyen3DS2Configuration.Builder(locale, environment, clientKey)
    .setThreeDSRequestorURL("https://{your app.com}/adyen3ds2")
    .build()

5.0.0-alpha01

02 May 12:28
4a3e0a4
Compare
Choose a tag to compare

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

Breaking Changes

Removed

  • requiresConfiguration() in action Component providers. For all Components, configuration is optional.
  • CardConfiguration.Builder.setAddressVisibility(). Use CardConfiguration.Builder.setAddressConfiguration() instead.
  • Environment.LIVE. Use the same live environment as your backend instead. You can find that value in your Customer Area.
  • saveState() and restoreState() in action components. The component will automatically handle the state now.
  • DropInServiceResult.Action constructor from JSON string. Use the constructor with the Action and Action.SERIALIZER instead.

New

  • Sessions flow using the single /sessions request is now supported.
  • For Components:
    • Payment method Components now handle actions. You no longer need a payment Component and action Components for a payment method with additional actions.
    • The GenericActionComponent that can handle all action types. You no longer need to implement separate Components for redirects and 3D Secure 2 authentication, for example.
    • A Pay button that you can configure to be hidden.
    • The submit() method that can be used to add your own pay/submit button.
    • You can now add amount to the configuration to show it on the pay/submit button.
    • The onSubmit() event that gets emitted when the shopper pays.
  • When the shopper is redirected back from an external app or website, an intermediate view with a loading spinner and a Cancel button now shows. The shopper can select to cancel the redirect back to your app.
  • Localisation for the Portuguese (Portugal) language.
  • Payment methods:
  • Express payment methods like PayPal and Klarna. These payment methods don't require the shopper to enter their payment details before they pay. Use InstantPaymentComponent.

Changed

  • For cards:
    • The supported brand logo icons now show below the card number input field.
    • US Debit brand logo icons no longer show.
  • For Drop-in, values set in DropInConfiguration now override conflicting configurations for individual payment methods.
  • For Google Pay, you can now set GooglePayConfiguration.merchantAccount to override the gatewayMerchantId configured in your Customer Area. For Advanced flow, this is the paymentMethod.configuration.gatewayMerchantId parameter in the /paymentMethods response.
  • For Components, when a payment method doesn't require input from the shopper, the Component that launches automatically returns the onSubmit() callback. For example, for the stored cards without a CVC input field.
  • For gift cards and partial payments, you must now implement onBalanceCheck() and onRequestOrder() to launch payment methods with an order and make partial payments.

Improved

  • You can now instantiate more than one instance of the same Component within the same lifecycle. Passing the key parameter to the Component provider get() method. For example, you can show cards and stored cards on the same screen.
  • For Components, you no longer need to handle duplicate events such as submit callbacks or errors with because they're only emitted once. Flows are now used instead of LiveData.
  • More UI theme customization options like dark mode.
  • The expiry date input field now has more specific validation rules and error messages.
  • The email address input field now has more specific validation rules.

Fixed

  • The redirect flow on Android 11.

4.11.0

17 Apr 08:45
a993338
Compare
Choose a tag to compare

New

  • For BLIK, one-click is now supported.
  • For 3D Secure 2, the threeDSRequestorAppURL can now be overridden from the configuration so that you can now use the Android App Link format (HTTP).
Adyen3DS2Configuration.Builder(locale, environment, clientKey)
    .setThreeDSRequestorURL("https://{your app.com}/adyen3ds2")
    .build()

⚠️Because of recent updates to the 3D Secure protocol, we strongly recommend that you provide the threeDSRequestorAppURL parameter as an Android App Link instead of custom link. This requires your app to handle the provided Android App Link. More details on how to handle Android App Link can be found on docs page.

Fixed

  • For BCMC, errors are now correctly highlighted.

4.10.0

07 Feb 15:02
6ced10d
Compare
Choose a tag to compare

New

  • The CardComponentState.binValue now reports 8 digit bins in case of card numbers with 16 or more digits.
  • The new CardBrand class can be used to define unknown card brands. This can be used along with CardType.
  • When adding new card brands through CardConfiguration, you can now use the new CardBrandto add brands that are not already defined in CardType.
    For example:
CardConfiguration.Builder([SHOPPER_LOCALE], [ENVIRONMENT], [CLIENT_KEY])
.setSupportedCardTypes(CardBrand(txVariant = "[CARD_BRAND1]"), CardBrand(txVariant = "[CARD_BRAND2]"))
.build()

Changed

  • Upgraded the 3D Secure 2 SDK version to v2.2.11.
  • Upgraded compileSdkVersion and targetSdkVersion to 32.
  • Upgraded Kotlin version to 1.6.21.
  • Upgraded Kotlin coroutines version to 1.6.1.
  • Upgraded Fragment version to 1.5.5.
  • Upgraded AppCompat version to 1.5.1.

Fixed

  • For cards, you can now add unknown card types that aren't defined in CardType. Previously,
    CardType.UNKNOWN was not working correctly.
  • There is no longer a conflict with the 3D Secure 2 SDK that causes a runtime exception. This fixes the known issue in v4.9.0.

Deprecated

  • The CardType.UNKNOWN property. Use CardBrand(txVariant = "[CARD_BRAND]") instead.
  • The CardType.setTxVariant() method. No longer needed as it was used with CardType.UNKNOWN.

4.9.1

13 Dec 16:04
c93e9ee
Compare
Choose a tag to compare

Fixed

  • For cards, when the shopper enters a card number and a dual branded card is detected, a brand is no longer selected by default.
  • Drop-in no longer crashes when navigating back after the shopper removes all stored payment methods.

4.9.0

17 Nov 15:17
f612973
Compare
Choose a tag to compare

Added

  • For cards, in AddressConfiguration.PostalCode mode, you can now specify if the postal code field required.
  • For BCMC, you can now specify if the card holder name field is required.
  • After the card brand is detected and the shopper enters the full card number in the card number input field, focus automatically moves to the next input field.

Changed

  • Upgraded the 3D Secure 2 SDK version to v2.2.10. This causes a known issue.
  • For a card number to be valid, its minimum required length is now 12 digits. Previously, the minimum was 8 digits.
  • For cards, if you currently set the postal code input field in the AddressConfiguration as .setAddressConfiguration(AddressConfiguration.PostalCode), you must update it to .setAddressConfiguration(AddressConfiguration.PostalCode()).

Fixed

  • Configuration changes no longer dismiss Drop-in. Previously, some configuration changes dismissed Drop-in.
  • Drop-in can now be initialized with only stored payment methods. Previously, no payment methods were shown if only stored payment methods were available.

Known issue

  • If your project uses Google play-services-location library version 20.0.0 or earlier, it causes a IncompatibleClassChangeError on runtime because of an incompatibility with the 3D Secure 2 SDK. You must upgrade your play-services-location library to version 21.0.0 or later to avoid that exception.

4.8.0

28 Sep 09:31
74168a8
Compare
Choose a tag to compare

Added

  • Online Banking Poland Component.

Changed

  • Update 3DS2 SDK version to 2.2.8.

Fixed

  • Gracefully terminate drop in without crashing when coming back from a redirect after drop-in was closed.
  • Updating 3DS2 SDK version fixed a crash on Android 13.

4.7.1

22 Jul 15:23
bd473dc
Compare
Choose a tag to compare

Fixed

  • For BACS Direct Debit, an error message appears under the payment agreement text if the shopper selects the Continue button without selecting the toggles to agree.

4.7.0

19 Jul 09:27
b570a68
Compare
Choose a tag to compare

Added

  • Support for the new Asia Pacific South East (APSE) and India live environments. Use these environments with the corresponding APSE or India location-based live endpoints.

Fixed

  • For BACS Direct Debit, the payment agreement text in the payment form now includes the amount. Previously, it always showed the default above amount instead of the amount.