Перейти к содержанию

API выдачи талонов V2 на центральном сервере СУО Энтер

Доступно в СУО версии 4.0.5.0 и выше

Общие сведения

API работает по протоколу HTTP на порту, сконфигурированом для службы центрального сервера СУО (по умолчанию 82).

Запросы к API выполняются через HTTP-методы GET/POST.

Тело ответа имеет формат JSON, кодировку UTF-8.

Доступ к API возможен при соблюдении следующих условий:

  • Запрос выполняется с HTTP-заголовком Token, в котором указывается токен вашей системы, выданный вам администратором центрального сервера СУО. Если токен некорректный, сервер вернет ответ с HTTP-статусом 401 Unauthorized.
  • Внешней системе, Token которой указывается в заголовке, разрешено работать с данным API в настройках в разделе "Интеграция". Если такого разрешения нет, то сервер вернет ответ с HTTP-статусом 403 Forbidden.
  • Оператор, который авторизуется через данное API, имеет право на доступ к колл-центру (встроенная роль "Оператор колл-центра"). Если у пользователя прав нет, то сервер вернет ответ с HTTP-статусом 500 Inetrnal Server Error.
  • Количество одновроменно работающих операторов колл-центра не превышает заданное лицензией ограничение. Если лицензионное ограничение нарушено, то сервер вернет ответ с HTTP-статусом 500 Inetrnal Server Error.

Формат ответа об ошибке

Ответ об ошибке приходит с HTTP-статусом 4xx или 5xx. В теле ответа приходит объект ErrorResponse.

  • Ответ с HTTP-статусом 4xx означает, что вероятно проблема на стороне интегратора, или клиента.
  • Ответ с HTTP-статусом 5xx означает, что проблема произошла не по вине клиента и не по вине интегратора, нужно обратится к владельцам системы с текстом ошибки.

Примечание

Если приходит UserMessage, то его обязательно нужно показать клиенту, если его нет, можно сказать общим планом, что что-то пошло не так.

Если приходит Message, значит интегратору нужно обратить на него внимание, если его нет, то никак не нужно реагировать

"ErrorResponse": {
    "UserMessage": "string", //Сообщение для пользователя
    "Message": "string" //Сообщение для интеграторов
}

Пример ответа на непринятый запрос

  // POST /api/1/callcenter/login HTTP/1.1
  // Token: a0adba90-b8a7-4fcd-9f73-787ae2eed727
  // Content-Length: 0
  // Host: center.suo.club:82

  // HTTP/1.1 401 Unauthorized
  // Content-Length: 138
  // Content-Type: application/json; charset=utf-8
  // Server: Microsoft-HTTPAPI/2.0
  // Access-Control-Allow-Origin: *
  // Date: Fri, 07 Jun 2019 10:01:21 GMT

  {
    "UserMessage":null,
    "Message":"Внешняя система с токеном a0adba90-b8a7-4fcd-9f73-787ae2eed727 не найдена."
  }

Общий порядок работы

Основное отличие данного API от версии 1 (V1) в том, что версия 2 (V2) позволяет обеспечить атомарность выполнения каких-либо операций с талонами в рамках сессий. В рамках одной сессии может быть выполнено сколько угодно изменений.

Примерный алгоритм работы

  • Открываем сессию (клиент хочет записаться на приём)
    • Создаём талон
  • Подтверждаем изменения. Сессия закрывается.
  • Открываем новую сессию (клиент хочет перенести запись)
    • Создаём копию старого талона
    • Отменяем старый талон
  • Отменяем изменения. Сессия закрывается. (клиент в последний момент отказался от переноса записи

Важно

В случае бездействия сессия истекает через 30 минут. При этом если имеется открытая транзакция, то она автоматически закрывается с отменой всех действий с талонами. Например, если начали создание талона и остановились, то через 30 минут резерв будет отменён, и слот предварительной записи освободится.