3dsSdkAndroidDoc

ThreedsSdkAndroidDoc

Сценарии работы с SDK | Сущности и классы | Актуальная версия SDK


Сценарии работы SDK

Базовый сценарий

Быстрый сценарий


Базовый сценарий для SDK

Включает в себя следующий флоу из методов:

  1. register.do - Запрос предназначен для регистрации (создания) заказа в Шлюзе. При успешной обработке запроса заказу присваивается номер (идентификатор), уникальный в рамках Шлюза. Метод используется для регистрации заказа с последующией оплатой любым способом.
  2. paymentOrder.do - Запрос предназначен для блокировки средств на карте Плательщика для проведения дальнейших расчетов между банками-участниками.
  3. Работа 3DS SDK со сценарием ThreedsMethodScenario - Запускается SDK. Приложение мерчанта ожидает успех/ошибку аутентификации плательщика.
  4. finish3dsMethod.do - Запрос предназначен для завершения 3DS аутентификации Плательщика при проведении операции оплаты.
  5. Работа 3DS SDK со сценарием ThreedsChallengesScenario - Запускается SDK. Пользователь проходит челленджи, мерчант ожидает успех/ошибку.
  6. finish3dsPayment.do - Запрос предназначен для передачи результата 3DS аутентификации Плательщиа при прямом взаимодействии с сервером ACS.
Подробнее о пункте 3.

Вызываем Sdk3DS, стартуем launchSDK и передаём в config ThreedsSdkMerchantOptionsConfig, который принимает context, ThreedsMethodScenario и ждём в лямбде параметр ответа SuccessThreedsMethod.

Sdk3DS.getInstance().launchSDK(
    config = ThreedsSdkMerchantOptionsConfig(
        context,
        Sdk3DS.Scenario.ThreedsMethodScenario(paymentOrderData)
    ) { result ->
        if (result is ThreedsSdkMerchantOptionsConfig.Sdk3dsResult.SuccessThreedsMethod) {
            // do gw/partner/api/v1/finish3dsMethod.do
        }
    }
)

paymentOrderData - экземпляр класса с одноимёнными параметрами из ответа метода paymentOrder.do из пункта 2.

Подробнее о пункте 5.

Вызываем Sdk3DS, стартуем launchSDK и передаём в config ThreedsSdkMerchantOptionsConfig, который принимает context, ThreedsChallengesScenario и ждём в лямбде параметр ответа SuccessChallenges.

Sdk3DS.getInstance().launchSDK(
    config = ThreedsSdkMerchantOptionsConfig(
        context,
        Sdk3DS.Scenario.ThreedsChallengesScenario(challengesData)
    ) { result ->
        if (result is ThreedsSdkMerchantOptionsConfig.Sdk3dsResult.SuccessChallenges) {
            // do gw/partner/api/v1/finish3dsPayment.do
        }
    }
)

challengesData - экземпляр класса получить параметры которого можно из finish3dsMethod.do

Быстрый сценарий для SDK

Включает в себя следующий флоу из методов:

  1. register.do - Запрос предназначен для регистрации (создания) заказа в Шлюзе. При успешной обработке запроса заказу присваивается номер (идентификатор), уникальный в рамках Шлюза. Метод используется для регистрации заказа с последующией оплатой любым способом.
  2. paymentOrder.do - Запрос предназначен для блокировки средств на карте Плательщика для проведения дальнейших расчетов между банками-участниками.
  3. Работа 3DS SDK со сценарием ThreedsChallengesScenario - Запускается SDK. Пользователь проходит челленджи, мерчант ожидает успех/ошибку.
  4. finish3dsPayment.do - Запрос предназначен для передачи результата 3DS аутентификации Плательщиа при прямом взаимодействии с сервером ACS.
Подробнее о пункте 3.

Вызываем Sdk3DS, стартуем launchSDK и передаём в config ThreedsSdkMerchantOptionsConfig, который принимает context, ThreedsChallengesScenario и ждём в лямбде параметр ответа SuccessChallenges.

Sdk3DS.getInstance().launchSDK(
    config = ThreedsSdkMerchantOptionsConfig(
        context,
        Sdk3DS.Scenario.ThreedsChallengesScenario(challengesData)
    ) { result ->
        if (result is ThreedsSdkMerchantOptionsConfig.Sdk3dsResult.SuccessChallenges) {
            // do gw/partner/api/v1/finish3dsPayment.do
        }
    }
)

challengesData - экземпляр класса получить параметры которого можно из paymentOrder.do

В чём разница сценариев?

Если метод paymentOrder.do вернул cReq или paReq, то выбираем второй сценарий. В противном случае cReq или paReq мы получаем из метода finish3dsMethod.do первого сценария.