Микросервис payment
Микросервис payment служит для управления оплатами заказов на сайте интернет-магазина. С его помощью можно просматривать, создавать, редактировать и удалять оплаты заказов.
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса участвует сущность Payment, которая содержит данные об оплате: id оплаты, id заказа, статус оплаты, поставщик платежных услуг, id покупателя, сумма заказа, id валюты, в которой был оплачен заказ и др.
Аутентификация
Для работы с микросервисом аутентификация не требуется.
Service context path
/api/payment/
Настройки и параметры конфигурации
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "XXm",
"JAVA_XMX": "YYYm",
"POSTGRES_DATABASE": "payment",
"POSTGRES_MIGRATION_USER": "payment_migration",
"POSTGRES_PORT": "5432",
"POSTGRES_USER": "payment_user"
}
}
//пример взят с тестового стенда
{
"env": {
"OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
"OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
"OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel",
"POSTGRES_HOST": "хост_бд",
"POSTGRES_MIGRATION_PASSWORD": "пароль",
"POSTGRES_PASSWORD": "пароль"
}
}
Методы микросервиса
- Создание оплаты - POST запрос, /v1/payments
Отсутствуют.
{
"orderId": "0e5f923e-df96-4a80-9769-a0d2087dcb12",
"status": "SUCCEED",
"provider": "yookassa",
"customerId": "1231231231",
"externalId": "yk-12312321",
"createdAt": "2024-09-18T10:02:41.243Z",
"expiresAt": "2024-09-18T10:02:41.243Z",
"amount": 0,
"currencyId": "DC12312312",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://provider.com/confirmation/123"
}
{
"id": "e0222e36-b568-4aaa-bc1c-473cd9523a5e",
"orderId": "0e5f923e-df96-4a80-9769-a0d2087dcb12",
"status": "SUCCEED",
"provider": "yookassa",
"customerId": "1231231231",
"externalId": "yk-12312321",
"createdAt": "2024-09-18T10:02:41.243Z",
"expiresAt": "2024-09-18T10:02:41.243Z",
"amount": 0,
"currencyId": "DC12312312",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://provider.com/confirmation/123"
}
- 201 - операция выполнена успешно, оплата создана
- 400 - ошибка, Bad Request
- 409 -ошибка, у заказа с таким orderId уже есть оплата
- 500 - ошибка, Internal Server Error
- Получение страницы с оплатами (с возможностью фильтрации) - POST запрос, /v1/payments/page
page - query-параметр: номер страницы для отображения
size - query-параметр: количество элементов для отображения на странице
sort - query-параметр: сортировка элементов на странице
{
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5
"
}
{
"content": [
{
"id": "b6112c45-4573-4b60-bdc6-54bc40d34548",
"orderId": "0e5f923e-df96-4a80-9769-a0d2087dcb12",
"status": "SUCCEEDED",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7cb84d-000f-5000-9000-104ed5aa4704",
"createdAt": "2024-09-18T09:59:41.326508Z",
"amount": 1900,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7cb84d-000f-5000-9000-104ed5aa4704"
},
{
"id": "3d1c40e2-fa43-48a9-acfe-ba08dbe49d56",
"orderId": "536b3ccc-a4da-4743-9014-7d4fdbae0971",
"status": "PENDING",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b9d25-000f-5000-9000-13687a9b6e1f",
"createdAt": "2024-09-17T13:51:33.921594Z",
"amount": 5500,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b9d25-000f-5000-9000-13687a9b6e1f"
},
{
"id": "2812aaf0-9845-4d12-a84e-498b7894b70a",
"orderId": "7d3633f8-71e5-4866-8056-29cabd56653c",
"status": "SUCCEEDED",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b930e-000f-5000-a000-1666af097e3d",
"createdAt": "2024-09-17T13:08:30.559834Z",
"amount": 5500,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b930e-000f-5000-a000-1666af097e3d"
},
{
"id": "fc520d6d-7935-472a-ab7a-133d139cb0cc",
"orderId": "6f1394f3-86c2-403a-bd48-9f538b3d0962",
"status": "SUCCEEDED",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b927f-000f-5000-9000-18d4db57f332",
"createdAt": "2024-09-17T13:06:07.191218Z",
"amount": 950,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b927f-000f-5000-9000-18d4db57f332"
},
{
"id": "99849a1e-372a-4863-99dc-f8946ca19374",
"orderId": "8af7d13c-750f-4481-a689-b867653e519b",
"status": "PENDING",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b9246-000f-5000-a000-1dd4fcdfc3e7",
"createdAt": "2024-09-17T13:05:10.421702Z",
"amount": 950,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b9246-000f-5000-a000-1dd4fcdfc3e7"
}
],
"number": 0,
"size": 5,
"totalElements": 5,
"pageable": {
"sort": {
"unsorted": true,
"sorted": false,
"empty": true
},
"pageNumber": 0,
"pageSize": 5,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"sort": {
"unsorted": true,
"sorted": false,
"empty": true
},
"first": true,
"numberOfElements": 5,
"empty": false
}
- 200 - операция успешно выполнена, получена страница с оплатами
- 500 - ошибка, Internal Server Error
- Получение оплаты по ее id - GET запрос, /v1/payments/{id}
id - path-параметр, обязательный: уникальный идентификатор оплаты
{
"id": "99849a1e-372a-4863-99dc-f8946ca19374",
"orderId": "8af7d13c-750f-4481-a689-b867653e519b",
"status": "PENDING",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b9246-000f-5000-a000-1dd4fcdfc3e7",
"createdAt": "2024-09-17T13:05:10.421702Z",
"amount": 950,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b9246-000f-5000-a000-1dd4fcdfc3e7"
}
- 200 - операция выполнена успешно, получены данные оплаты
- 404 - ошибка, оплата с таким id не найдена
- 500 - ошибка, Internal Server Error
- Удаление оплаты по ее id - DELETE запрос, /v1/payments/{id}
id - path-параметр, обязательный: уникальный идентификатор оплаты
Отсутствует. В ответе приходит только код операции, например, 204.
- 204 - операция выполнена успешно, оплата удалена
- 404 - ошибка, оплата с таким id не найдена
- 500 - ошибка, Internal Server Error
- Редактирование оплаты - PATCH запрос, /v1/payments/{id}
id - path-параметр, обязательный: уникальный идентификатор оплаты
{
"id": "e0222e36-b568-4aaa-bc1c-473cd9523a5e",
"orderId": "123123",
"status": "SUCCEED",
"provider": "yookassa",
"customerId": "1231231231",
"externalId": "yk-12312321",
"createdAt": "2024-09-18T10:37:36.328Z",
"expiresAt": "2024-09-18T10:37:36.328Z",
"amount": 900,
"currencyId": "DC12312312",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://provider.com/confirmation/123"
}
{
"id": "e0222e36-b568-4aaa-bc1c-473cd9523a5e",
"orderId": "123123",
"status": "SUCCEED",
"provider": "yookassa",
"customerId": "1231231231",
"externalId": "yk-12312321",
"createdAt": "2024-09-18T10:37:36.328Z",
"expiresAt": "2024-09-18T10:37:36.328Z",
"amount": 900,
"currencyId": "DC12312312",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://provider.com/confirmation/123"
}
- 200 - операция выполненау спешно, оплата изменена
- 400 - ошибка, Bad Request
- 404 - ошибка, оплата с таким id не найдена
- 500 - ошибка, Internal Server Error
- Получение оплаты по id заказа - GET запрос, /v1/payments/by-order-id/{orderId}
orderId - path-параметр, обязательный: уникальный идентификатор заказа
{
"id": "99849a1e-372a-4863-99dc-f8946ca19374",
"orderId": "8af7d13c-750f-4481-a689-b867653e519b",
"status": "PENDING",
"provider": "yoo_kassa",
"customerId": "570d645c-3c7d-4d46-95cc-a040cf65d8d5",
"externalId": "2e7b9246-000f-5000-a000-1dd4fcdfc3e7",
"createdAt": "2024-09-17T13:05:10.421702Z",
"amount": 950,
"currencyId": "90e5fed1-1eaa-4e45-8574-b687605817fd",
"confirmationType": "REDIRECT",
"confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=2e7b9246-000f-5000-a000-1dd4fcdfc3e7"
}
- 200 - операция успешно выполнена, получены данные оплаты
- 404 - ошибка, заказ с таким orderId не найден
- 500 - ошибка, Internal Server Error