Введение

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

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

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

Авторизация

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

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

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

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

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

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

Все 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. через запрос к очереди сообщений

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

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

Запрос

Описание

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

Заказ

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

Рестораны

ЗапросОписание
GetObjectsПолучить список объектов
GetAgentInfo

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

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

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

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

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

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

Другое


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

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

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

Правила сериализации/десериализации json

Правила сериализации/десериализации json

События

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

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

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

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

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

Коды ошибок

Коды ошибок