Skip to content

payneteasy/paynet-transfer-merchant-proxy

Repository files navigation

Общая информация

Проект реализует proxy-сервер для взаимодействия между мобильным приложением (клиентом) и системой Payneteasy payment gateway (PPG) при осуществлении переводов денежных средств с карты на карту.

Взаимодействие происходит следующим образом:

  1. Клиент отправляет запрос на proxy-сервер на получение токена (в дальнейшем он будет передаваться в других запросах)
  2. Proxy-сервер генерирует случайный токен, привязанный к конкретному клиенту и возвращает его клиенту
  3. Клиент отправляет запрос на proxy-сервер для иницировании транзакции.
  4. Proxy-сервер на основании данных о транзакции возвращает набор конфигурационных данных для осуществления перевода в системе PPG
  5. Клиент отправляет запрос в систему PPG на осуществление перевода.
  6. Система PPG отправляет запрос на proxy-сервер для проверки соответствия данных транзакции тем, которые были переданы клиентом на proxy-сервер в п.3
  7. В случае успешной проверки система PPG инициирует собственно перевод средств

В зависимости от настроек системы точная последовательность шагов при проведении транзакции может отличатся, например, используется или нет технология 3d-Secure. Подробнее о протоколе обмена данными см. документацию

Сборка проекта и запуск системы

Для сборки проекта используется утилита gradle.

Проект разделен на следующие модули:

  • paynet-transfer-merchant-proxy-db - создание и обновление базы данных
  • paynet-transfer-merchant-proxy-web - web-приложение, реализующее обработку запросов от клиента и PPG
  • paynet-transfer-merchant-proxy-web-integration-test - интеграционные тесты для web-приложения

Для запуска системы (а также тестов) необходимо, чтобы были заданы следующие переменные окружения:

  • MERCHANT_PROXY_ENDPOINT_ID - идентификатор точки доступа. Для тестов может быть любым числом, например, 111, для рабочей системы предоставляется при интеграции с PPG
  • MERCHANT_PROXY_CONTROL_KEY - ключ для подписывания запросов. Для тестов может быть, например ABCD, для рабочей системы предоставляется при интеграции с PPG

Перед сборкой проекта (запуском тестов) необходимо создать базу данных. В данном случае используется файловая база данных h2db, т.е. отдельной установки сервера БД не требуется.

cd paynet-transfer-merchant-proxy-db ; ../gradlew flywayMigrate ; cd .. 

Для сборки проекта и запуска тестов необходимо выполнить команды:

cd paynet-transfer-merchant-proxy-web ; ../gradlew clean build ; cd ..

При сборку создается файл paynet-merchant-proxy-web/target/libs/ROOT.war. Для запуска системы его необходимо развернуть на сервере приложений (в корневом контексте)

Для запуска интеграционных тестов необходимо выполнить команды:

cd paynet-transfer-merchant-proxy-web-integration-test ; ../gradlew clean build ; cd ..

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published