Выбор веб-терминала для выдачи денежных средств с последующей отправкой push-уведомления кассиру
Описание бизнес-процесса.
- Отобразить список доступных веб-терминалов полученных методом API на карте.
- При необходимости показать фотографии веб-терминала относительно временных ссылок полученных методом API.
- После выбора пользователем определенного веб терминала на карте отправить запрос для уведомления кассира.
Описание эндпоинта для получения информации по доступным веб терминалам.
URI: /terminals/info
Способ отправки: GET
Входные данные:
Заголовки:
- Accept: "application/json"
- Authorization: Bearer $token
Ответ
- Успешный ответ
HTTP_STATUS: 200
{
"statusCode": 200,
"data": {
"terminals": [
{
"terminalID": "118922",
"longitude": 82.6507043,
"latitude": 49.9451367,
"location": "Прочие",
"hourWork": "Рабочее время + сб, вск",
"address": "Усть-Каменогорск пр.Назарбаева 86"
}...
]
},
"message": "OK"
}
- Внутренняя ошибка
HTTP_STATUS: 500
{
"statusCode": 500,
"message": "Ошибка на сервере"
}
Описание эндпоинта для получения фотографий по определенному терминалу
URI: /terminals/photo/{idTerminal}
Способ отправки: GET
Относительно запроса генерируются временные ссылки на фотографии.
Срок жизни каждой ссылки равен 30 минутам!
Поле | Описание |
idTerminal | Идентификатор терминала относительно общего списка |
Все параметры являются обязательными.
Входные данные:
Заголовки:
- Accept: "application/json"
- Authorization: Bearer $token
Ответ
- Успешный ответ
HTTP_STATUS: 200
{
"statusCode": 200,
"data": {
"terminalPhotos": {
"photoInside": "https://agents.ams3.digitaloceanspaces.com/terminalstatusphotos/118922/8d95b8bb852ffb520782e375ec3d105d.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=B6OU7NEM5YRXINZHKXM7%2F20210813%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210813T071232Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=658a22412330f0a9b2cade4323c781db2bbfb65be998a7cdc1129d367b68961a",
"photoOutside": "https://agents.ams3.digitaloceanspaces.com/terminalstatusphotos/118922/ef83e5b2d1c907ada97116579efb541e.png?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=B6OU7NEM5YRXINZHKXM7%2F20210813%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210813T071233Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=6d031020c52c1ba5012b363f5f5c10d5bb98f386093d9e5d4701aedad205f7d3"
}
},
"message": "ОК"
}
- В случае отсутствия фотографий по терминалу
HTTP_STATUS: 400
{
"statusCode": 400,
"message": "Фотографий по терминалу не найдено"
}
- В случае неудачи при генерации временных ссылок
HTTP_STATUS: 500
{
"statusCode": 500,
"message": "Не удалось сгенерировать временные ссылки на фотографии"
}
Описание эндпоинта для отправки оповещения о предстоящей выдаче на определенном терминале.
URI: /terminals/notify
Способ отправки: POST
Входные данные:
Заголовки:
- Accept: "application/json"
- Authorization: Bearer $token
Тело запроса:
{
"terminalID": "12312313",
"providerRequestID": "1231313"
}
Поле | Описание |
terminalID | Идентификатор терминала относительно общего списка |
providerRequestID | Идентификатор заявки на стороне провайдера |
Все параметры являются обязательными.
Ответ
- В случае успешной отправки оповещения
HTTP_STATUS: 200
{
"statusCode": 200,
"message": "Уведомление отправлено на терминал"
}
- В случае ошибки при валидации
HTTP_STATUS: 422
{
"statusCode": 422,
"message": "Ошибка валидации"
}
- Переданный терминал не найден
HTTP_STATUS: 400
{
"statusCode": 400,
"message": "Терминал не найден"
}
- Если переданный терминал не является веб терминалом
HTTP_STATUS: 400
{
"statusCode": 400,
"message": "Переданный терминал не является веб терминалом"
}
- Если заявка по идентификатору не найдена
HTTP_STATUS: 400
{
"statusCode": 400,
"message": "Заявка не найдена"
}
- Ошибка на сервере
HTTP_STATUS: 500
{
"statusCode": 500,
"message": "Ошибка на сервере"
}