Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Atenção, esta página não se encontra disponível em Português
Classic-integration icon

Migrating to Adyen 3DS2 SDK version 2.2.0

Find out how you can update your integration to the latest Android and iOS 3DS2 SDKs.

This page is for our classic Direct API (/authorise) integration. If you are integrating using our Checkout APIs, refer to the Native 3D Secure 2 documentation instead.

The new Adyen 3DS2 SDK version 2.2.0 for iOS and Android supports:

  • 3D Secure protocol version 2.2.0 in addition to 2.1.0.
  • Specifying which 3D Secure 2 protocol version to use when creating a transaction.
  • Sending your app URL in the threeDSRequestorAppURL parameter for out-of-band (OOB) authentication in in-app transactions.

    In an OOB authentication, the cardholder performs the challenge flow outside of the 3DS2 SDK. The authenticating app uses the threeDSRequestorAppURL to call your app after an OOB authentication occurs.

Recommendations

Even if you do not intend to support 3D Secure protocol 2.2.0 for in-app transactions, we recommend that you still upgrade to the newest 3DS2 SDK version to get the latest updates and fixes.

If you would rather use a previous version of the 3D Secure protocol, our 3DS2 SDK lets you specify the protocol version when you create a transaction.

Migrate to Adyen 3DS2 SDK version 2.2.0

  1. Install the latest versions:

  2. If you want to use the latest 3D Secure 2 protocol version 2.2.0:

    By default, the Adyen 3DS2 SDKs version 2.2.0 supports the latest 3D Secure 2 protocol (2.2.0).

    When using protocol version 2.2.0, you can optionally send the threeDSRequestorAppURL parameter during the challenge flow. This parameter is used in an OOB authentication. If you specify a previous protocol version, the threeDSRequestorAppURL parameter is ignored.

    The examples in the tabs below show how you would specify the threeDSRequestorAppURL parameter in iOS and Android:

    Set the threeDSRequestorAppURL in the ADYChallengeParameters .

    Make sure to add the URL should to the app build settings. For more information, refer to the Apple Developer documentation.

    
    NSDictionary *additionalData = ...; // Retrieved from Adyen.
    ADYChallengeParameters *parameters = [ADYChallengeParameters
      ...
                                          threeDSRequestorAppURL: [NSURL URLWithString:@"{YOUR_CUSTOM_SCHEME}://{YOUR_CUSTOM_DOMAIN}"]];

    Set the threeDSRequestorAppURL in the ChallengeParameters . You can also retrieve this from ChallengeParameters.getEmbeddedRequestorAppURL(context).

    Map<String, String> additionalData = ...; // Retrieved from Adyen.
    
    ChallengeParameters challengeParameters = new ChallengeParameters();
    ...
    challengeParameters.setThreeDSRequestorAppURL(ChallengeParameters.getEmbeddedRequestorAppURL(this));
  3. If you want to use an earlier 3D Secure 2 protocol version:

    If you want to use an earlier 3D Secure 2 protocol version, you must:

    1. Include threeDS2RequestData.messageVersion in your POST /authorise request. For example, set this parameter to 2.1.0.
    2. Specify the version in the SDK.

      The examples in the tabs below show how you would specify the 3D Secure 2 protocol version 2.1.0 in the iOS and Android 3DS2 SDKs:

      Specify the version (2.1.0) in the transactionWithMessageVersion when you initialize the ADYService class.

       [ADYService serviceWithParameters:parameters appearanceConfiguration:nil completionHandler:^(ADYService *service) {
           NSError *error = nil;
           ADYTransaction *transaction = [service transactionWithMessageVersion:"2.1.0" error:&error];
           if (transaction) {
               ADYAuthenticationRequestParameters *authenticationRequestParameters = [transaction authenticationRequestParameters];
               // Submit the authenticationRequestParameters to /authorise3ds2.
           } else {
               // An error occurred.
           }
       }];

      Specify the version (2.1.0) as the second parameter when you initialize the ThreeDS2Service.INSTANCE .

      ThreeDS2Service.INSTANCE.initialize(/*Activity*/ this, configParameters, null, null);
      
      Transaction mTransaction = ThreeDS2Service.INSTANCE.createTransaction(null, "2.1.0");

See also