/yamoney-payments

Payment service

Primary LanguageJava

Сервис обработки платежей

Данные платежа: отправитель, получатель, сумма.

Сервис использует механизм шардирования для хранения платежей в 3 базах данных.

Информация о платеже сохраняется в одной из трех БД для отказоустойчивости и распределения нагрузки.

API сервиса обработки платежей:

Сохранение платежей

URL: POST /api/1.0/payment

Пример запроса:

[
    { 		
        "accountFrom": "43534-34534-4535-4354",
    	"accountTo": "3455-3453-3454-5554",
    	"amount": 5453.23
    }
 ]

Варианты ответов:

201 - данные успешно сохранены

400 - неправильные входные параметры

Пример ответа:

{
    "errorCode": 3,
    "errorMessage": "Must be at least one payment"
}

Получение общей суммы потраченных средств по отправителю

URL: GET /api/1.0/payment/4345-3443/sum

Параметры запроса /api/1.0/payment/:accountFrom/sum:

accountFrom - отправитель, у которого будет произведен подсчет общей суммы потраченных средств

Варианты ответов:

200 - данные успешно сохранены

Пример ответа:

{
    "accountFrom": "4545-2344-2342-4234",
    "sum": 4545.34
}

400 - неправильные входные параметры

Пример ответа:

{
    "errorCode": 1,
    "errorMessage": "Account 4545-2344-2342-4234 was not found"
}

Расшифровка кода ошибки

Код ошибки Описание
1 Невозможно найти данных счет
2 Неизвестная ошибка
3 Неправильные входные параметры

Настройка запуска приложения

Envs подключения к серверам баз данных
Название env Описание Значение по-умолчанию
PAYMENTS_SHARD_01_URL URL подключения к базе jdbc:postgresql://localhost:5432/payments1
PAYMENTS_SHARD_01_USERNAME Пользователь, из под которого будет осуществляться подключение postgres
PAYMENTS_SHARD_01_PASSWORD Пароль пользователя кщще
PAYMENTS_SHARD_02_URL URL подключения к базе jdbc:postgresql://localhost:5432/payments2
PAYMENTS_SHARD_02_USERNAME Пользователь, из под которого будет осуществляться подключение postgres
PAYMENTS_SHARD_02_PASSWORD Пароль пользователя кщще
PAYMENTS_SHARD_03_URL URL подключения к базе jdbc:postgresql://localhost:5432/payments3
PAYMENTS_SHARD_03_USERNAME Пользователь, из под которого будет осуществляться подключение postgres
PAYMENTS_SHARD_03_PASSWORD Пароль пользователя кщще