.. | ||
src/main | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
pom.xml | ||
README.md |
ds-simple-mock
Сервис, который может быть использован в качестве DS
для обработки 3DS Preparation Flow
&& 3DS Authentification Flow
в рамках демонстрации работы RBK.money 3D Secure Server
Использование
docker-compose up -d
Cборка и запуск сервиса полностью автоматизированы и производится внутри докера, дополнительно локально (maven
, openjdk11
и тд) ничего устанавливать не нужно. Сборка сервиса описана в Dockerfile
, запуск описан в docker-compose.yml
Обращаем внимание, для корректного демо RBK.money 3D Secure Server порядок запуска:
docker-compose.yml
three-ds-server macroservice (сам макросервис 3DSS)docker-compose.yml
ds-simple-mock (пример сервиса, который может быть использован в качестве заглушки для обработкиPReq
&&AReq
запросов в DS отмакросервиса 3DSS
)docker-compose.yml
pseudo-schedulator (пример сервиса, который может быть использован в качестве заглушки для инциализацииPReq/PRes flow
вмакросервис 3DSS
)
Сервис НЕ умеет отдавать отличающиеся
ARes
сообщения (например, в зависимости от приходящегоPAN
в запросеAReq/ARes flow
), ответы, которые возвращает сервис статичны. В стандартной имплементации мокаDS
иммитация стандартной логикиDS
производится по передаваемому PAN в запросе, сервис генерирует успешные и неудачныеARes
сообщения
Описание
Сервис имплементирует элементарную логику DS
— принимает и отвечает статичными сообщениями, обозначенных спецификацей EMVCo
На данный момент сервис поддерживает обработку 3 провайдеров {providerId}
— visa
, mastercard
, mir
Пример 3DS Authentification Flow
-> Request [POST] /{providerId}/DS2/authenticate
{
"messageType": "AReq",
"messageVersion": "2.1.0",
...
}
<- Response [POST] /{providerId}/DS2/authenticate
{
"messageType": "ARes",
"messageVersion": "2.1.0",
...
}
Пример 3DS Preparation Flow
-> Request [POST] /{providerId}/DS2/authenticate
{
"messageType": "PReq",
"messageVersion": "2.1.0",
...
}
<- Response [POST] /{providerId}/DS2/authenticate
{
"messageType": "PRes",
"messageVersion": "2.1.0",
...
}
Конфигурация
Дополнительно настраивать ничего не нужно, но обратите внимание, что порты не проброшены наружу, потому что никаких внешних запросов от 3DS Requestor
/ 3DSS
-клиента напрямую не производится