r_keeper

Описание API v2

Зависимость от версии кассы r_keeper

7.6.0 и ниже версии не поддерживаются, работоспособность агента не гарантируется.

7.6.2-7.6.4 версии - может некорректно работать new_order_delivery / CreateOrder.

Версия кассы должна быть не менее 7.6.2.156 или 7.6.4.100

Авторизация

Каждому агрегатору выдается токен, который действует на среды test и prod.

Он требуется для проверки наличия лицензии WsServer для доступа к ресторанам на выполнение определенных действий.

Токен можно получить самостоятельно в системе l.ucs.ru из сгенерированной лицензии вашего объекта для агрегатора в поле «Лицензия»
Скопируйте значение из поля "Лицензия" и передавайте его в заголовке AggregatorAuthentication

Общее описание

Мы используем JSON-RPC. Запросы осуществляются с помощью HTTP методом POST.
Название вызываемого метода передается в теле запроса. Сервер возвращает ответ с http статус 200 Ok.
Все json запросы должны быть в кодировке UTF-8.
POST https://{{serverName}}/wsserverlp/api/v2/aggregators/Create
{
   "taskType": "название метода"
}

Существует несколько типов запросов:
*Сценарий:
  1. Агрегатор отправляет команду на WhiteServer, в ответе приходит taskGuid.
  2. WhiteServer пересылает команду агенту
  3. Агент формирует запрос в кассовый сервер или сервер справочников
  4. Агент получает ответ по запросу
  5. Агент отправляет информацию на WhiteServer
  6. Агрегатор может получить результат с WhiteServer двумя способами:
  • методом GetTaskResponse - получаете ответ по taskGuid
  • подключиться к очереди сообщений по long polling и ожидать поступление ответов по командам (ответ содержит taskGuid)

Реализованные методы

Работа с меню
Работа с заказом
Взаимодействие с агентами
Работа с задачами
Интеграция с Store House

Описание ошибок

Серверные ошибки
{
  "error": {
    "wsError": { // ошибка от сервера
      "code": "string",
      "desc": "string"
    }
  }
}
Примеры ошибок
// BadRequest - параметр запроса не соответствует модели
{
  "error": {
    "wsError": {
      "code": "BadRequest",
      "desc": "InvalidRequestStructure"
    }
  }
}
 
 
// AuthFailed - попытка отправить команду без авторизации / с недействительным токеном
{
  "error": {
    "wsError": {
      "code": "AuthFailed"
    }
  }
}
 
 
// Timeout - агент недоступен
{
  "responseCommon": {
    "taskGuid": "49a50e51-46f0-41d7-825e-ac10e1c33faa",
    "taskType": "GetOrder",
    "objectId": 199999999
  },
  "error": {
    "wsError": {
      "code": "Timeout"
    }
  }
}
 
// License - нет лицензии для агента
{
  "responseCommon": {
    "taskGuid": "fe5bc9ff-61cf-4f8f-8ae6-cf6d27627fb1",
    "taskType": "GetStopList",
    "objectId": 199999999
  },
  "error": {
    "wsError": {
      "code": "License",
      "desc": "WsAgent (agentID: 199999999)"
    }
  }
}
Ошибки агента V2
{
  "error": {
    "agentError": {  // ошибка от агента
      "code": "string",
      "desc": "string"
    }
  }
}
Примеры ошибок
{
  "responseCommon": {
    "taskGuid": "49a50e51-46f0-41d7-825e-ac10e1c33faa",
    "taskType": "CreateOrder",
    "objectId": 199999999
  },
  "error": {
    "agentError": {
    "code": "WsaOrderCreationError",
    "desc": "RkCommandsHandler, Создания заказа"
    }
  }
}