Введение

В статье описан White Server API v2

Обратите внимание

Интеграция платная. Для ее использования требуется купить лицензию.

Авторизация

Для авторизации используется токен. Для того, чтобы получить токен необходимо:

  1. Отправить запрос на интеграцию по адресу integrations@rkeeper.ru. В запросе укажите, что вы являетесь агрегатором, реквизиты, краткое описание сервиса и есть ли тестовый стенд.
  2. Получить ключ авторизации для White Server API.
Передавать токен необходимо в заголовке AggregatorAuthentication.

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

Мы используем JSON-RPC. Запросы осуществляются с помощью HTTP методом POST.

Название вызываемого метода передается в теле запроса. Сервер возвращает ответ с http статус 200 Ok.

POST https://{{serverName}}/wsserverlp/api/v2/aggregators/Create
{
   "taskType": "название метода"
}

Где serverNamews.ucs.ru 

Все json запросы должны быть в кодировке UTF-8.

Существует несколько типов запросов:

Тип запросаКак работает?Пример команды
CинхронныйHTTP Response непосредственно возвращает результат команды
АсинхронныйHTTP Response возвращает taskGuid (идентификатор команды)
Сценарий:
1) Агрегатор отправляет команду на Whiteserver, в ответе приходит taskGuid.
2) Whitesever пересылает запрос в ресторан.
3) После выполнения результат приходит на WhiteServer.
4) Агрегатор может получить результат с WhiteServer двумя способами a) Запросить командой GetTaskResponse (указав taskGuid) b) Подключиться к очереди команд Whiteserver по long polling и ожидать поступление ответов по командам (ответ содержит taskGuid)
GetStopList, GetOrderState

Ответ на асинхронный запрос можно получить 2 способами:

  1. методом GetTaskResponse - получаете ответ по taskGuid

  2. через запрос к очереди сообщений

Описание методов

Описание общих параметров запросов к Whiteserver

Параметр

Тип

Обязательный

Описание

Значение

async
-Асинхронный вызов метода. Допустимо использовать один из: синхронный, либо асинхронный
objectIdintдаКод ресторана в системе лицензированияПрисутствует во всех методах, кроме GetAgentList
sync
-Синхронный вызов метода (допустимо использовать один из: синхронный, либо асинхронный)
systemNamestringнетУказание конкретной подключенной системы для которой выполняется запросПрисутствует во всех методах, кроме GetAgentList
timeoutint-Время ожидания ответа от агента в секундахпо умолчанию 120 секунд,
максимальное 180 секунд

Меню, стоп-лист

Запрос

Описание

GetMenuПолучить меню
UpdateMenuЗапрос обновления меню вне расписания
GetStopListПолучить стоп лист

Заказ

ЗапросОписание
GetOrderПолучить заказ
GetOrderStateПолучить статус заказа
CancelOrderОтменить заказ
CreateOrderСоздать заказ
PayOrderОплата заказа

Рестораны

ЗапросОписание
GetAgentInfo

Получение информации по агенту, установленному в ресторане

Интеграция с Store House

ЗапросОписание
ShDocDashingReportСоздание расходной накладной
ShDelDocDashingReport

Удаление расходной накладной

ShDocReceivingReportСоздание приходной накладной
ShDelDocReceivingReportУдалении приходной накладной
ShGetCorrsПолучение списка корреспондентов
ShGetGoodGroupsПолучение списка товаров и групп товаров
ShGetGoodsПолучение списка товаров
ShGetMUnitsПолучение единиц измерения
ShGetStoresПолучение списка складов
ShRepBillOfBalance

Запрос отчета «Ведомость остатков»

Другое


ЗапросОписание
GetConnectedSystemsПолучение информации о подключенных к агенту системах и проверка их доступности
GetTaskListПолучить список задач
GetTaskResponseПолучение ответа по задаче

Запрос к очереди сообщений

Очередь сообщений

События

События сообщают внешнему сервису об изменениях, производимых на внутренних сервисах ресторана (касса, склад).

Получение событий

Получать события можно подключившись к очереди сообщений

Пример ответа с событиями

{
  "eventResponse": {
  ----------agent event response json---------
  },
  "responseCommon": {
    "taskType": "Event",
    "objectId": int
  },
  "error": {
      ----------error response json---------
  }
}

Коды ошибок

Коды ошибок