Перейти к основному контенту

Выбор веб-терминала для выдачи денежных средств с последующей отправкой push-уведомления кассиру

Описание бизнес-процесса.

  1. Отобразить список доступных веб-терминалов полученных методом API на карте.
  2. При необходимости показать фотографии веб-терминала относительно временных ссылок полученных методом API.
  3. После выбора пользователем определенного веб терминала на карте отправить запрос для уведомления кассира.

Описание эндпоинта для получения информации по доступным веб терминалам.

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": "Ошибка на сервере"
}