https://github.com/payneteasy/paynet-transfer-merchant-proxy
https://github.com/payneteasy/paynet-transfer-merchant-proxy
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/payneteasy/paynet-transfer-merchant-proxy
- Owner: payneteasy
- Created: 2017-05-19T09:32:14.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-11-28T12:47:23.000Z (over 1 year ago)
- Last Synced: 2024-12-28T15:38:09.432Z (over 1 year ago)
- Language: Java
- Size: 145 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Общая информация
Проект реализует 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.
Подробнее о протоколе обмена данными см. [документацию](http://doc.payneteasy.com/card_np_API_mobile_index.html#money-transfer)
# Сборка проекта и запуск системы
Для сборки проекта используется утилита 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 ..