external:qr_меню:04_оповещения_для_персонала:09_api

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
external:qr_меню:04_оповещения_для_персонала:09_api [2021/09/14 12:32] Александр Ильинexternal:qr_меню:04_оповещения_для_персонала:09_api [2022/02/03 12:08] (текущий) alexander_troyan
Строка 1: Строка 1:
 ====== API системы оповещений ====== ====== API системы оповещений ======
-Общий принцип работы с оповещениями через API +===== Общий принцип работы с оповещениями через API =====
  
-  * Сервер QR меню хранит очередь событий за некоторый промежуток времени (по умолчанию 5 мин) +Сервер QR меню хранит очередь событий за некоторый промежуток времени ( по умолчанию 5 минут )Старые события автоматически удаляются из очереди 
-  * Старые события автоматически удаляются из очереди  +Сторонний клиент может обратиться к серверу по API и получить список новых событий
-  Сторонний клиент может обратиться к серверу по API и получить список новых событий + 
-  Сторонний клиент самостоятельно отправляет оповещения в нужный канал апример, на электронную почту)+===== Как получить список событий ===== 
 + 
 +Для того, чтобы получить список событий необходимо отправить GET запрос на /api/v4/events. 
 +Пример запроса: 
 + 
 +<code> 
 +GET https://ip:port/api/v4/events?hash=hash 
 +token: token 
 +</code> 
 + 
 +**hash** - это идентификатор события, благодаря которому сервер QR меню понимает, какие события клиент уже получил и какие для него являются новыми. Передается query параметром.  
 +Для того чтобы получить все события в качестве hash передается значение none.  
 + 
 +**token** - это ключ доступа к серверу QR меню. Передается внутри заголовка token. 
 + 
 + 
 + 
 +Пример ответа: 
 + 
 +<code> 
 +
 + "result": true, 
 + "data":
 + "updates":
 +
 + "hash": "0xd8833dd3", 
 + "code": "waiter_call", 
 + "table": 1000028, 
 + "invoice": null, 
 + "order": null, 
 + "table_repr":
 + "id": 1000028, 
 + "name": "6", 
 + "max_guests": 50 
 +
 +
 +
 +
 +
 +</code> 
 + 
 +В ключе 'updates' содержится список из событий в хронологическом порядке.  
 +Каждое событие представляет собой: 
 + 
 +**hash** - идентификатор события 
 +**code** - название события 
 +**table** - идентификатор стола 
 +**invoice** - текущий счет (id, id стола, сумма к оплате, информация о добавленных блюдах) 
 +**order** - полное представление заказа (сумма, информация об официанте, столе, скидках и блюдах) 
 +**table_repr** - информация о столе(id, имя, максимальное кол-во гостей) 
 + 
 +Далее сторонний клиент самостоятельно отправляет оповещения в нужный канал. Например, на электронную почту
 + 
 +==== Примеры ответов и виды событий ==== 
 + 
 +=== Сохранение заказа (save_order=== 
 + 
 +<code> 
 +
 + "hash": "0xd11f09a7", 
 + "code": "save_order", 
 + "table": 1000028, 
 + "invoice":
 + "id": 121, 
 + "order_guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "table_id": 1000028, 
 + "unpaid_sum": 186.0, 
 + "session_id": 121, 
 + "status": 0, 
 + "error": null, 
 + "session":
 + "items":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "count": 1.0, 
 + "modifiers": [], 
 + "name": "Блюдо с модификатором" 
 + }, 
 +
 + "id": 1000062, 
 + "type": "dish", 
 + "count": 3.0, 
 + "modifiers": [], 
 + "name": "Блюдо" 
 +
 + ], 
 + "payments": null 
 +
 + }, 
 + "order":
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "sum": 186.0, 
 + "pricelist_sum": 186.0, 
 + "table":
 + "id": 1000028, 
 + "name": "6" 
 + }, 
 + "waiter":
 + "id": 9001, 
 + "name": "Система" 
 + }, 
 + "discounts": [], 
 + "payments": [], 
 + "dishes":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "name": "Блюдо с модификатором", 
 + "price": 150.0, 
 + "count": 1.0, 
 + "sum": 150.0, 
 + "modifiers": [] 
 + }, 
 +
 + "id": 1000062, 
 + "type": "dish", 
 + "name": "Блюдо", 
 + "price": 12.0, 
 + "count": 3.0, 
 + "sum": 36.0, 
 + "modifiers": [] 
 +
 +
 +
 +}  
 +</code> 
 + 
 +=== Вызов официанта (waiter_call) === 
 + 
 +<code> 
 +
 + "result": true, 
 + "data":
 + "updates":
 +
 + "hash": "0xd8833dd3", 
 + "code": "waiter_call", 
 + "table": 1000028, 
 + "invoice": null, 
 + "order": null, 
 + "table_repr":
 + "id": 1000028, 
 + "name": "6", 
 + "max_guests": 50 
 +
 +
 +
 +
 +
 +</code> 
 + 
 +=== Дозаказ (additional_order)=== 
 + 
 +<code> 
 +
 + "hash": "0xb22ce428", 
 + "code": "additional_order", 
 + "table": 1000028, 
 + "invoice":
 + "id": 122, 
 + "order_guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "table_id": 1000028, 
 + "unpaid_sum": 336.0, 
 + "session_id": 122, 
 + "status": 0, 
 + "error": null, 
 + "session":
 + "items":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "count": 1.0, 
 + "modifiers": [], 
 + "name": "Блюдо с модификатором" 
 +
 + ], 
 + "payments": null 
 +
 + }, 
 + "order":
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "sum": 336.0, 
 + "pricelist_sum": 336.0, 
 + "table":
 + "id": 1000028, 
 + "name": "6" 
 + }, 
 + "waiter":
 + "id": 9001, 
 + "name": "Система" 
 + }, 
 + "discounts": [], 
 + "payments": [], 
 + "dishes":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "name": "Блюдо с модификатором", 
 + "price": 150.0, 
 + "count": 1.0, 
 + "sum": 150.0, 
 + "modifiers": [] 
 + }, 
 +
 + "id": 1000062, 
 + "type": "dish", 
 + "name": "Блюдо", 
 + "price": 12.0, 
 + "count": 3.0, 
 + "sum": 36.0, 
 + "modifiers": [] 
 + }, 
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "name": "Блюдо с модификатором", 
 + "price": 150.0, 
 + "count": 1.0, 
 + "sum": 150.0, 
 + "modifiers": [] 
 +
 +
 +
 +
 +</code> 
 + 
 +Вся информация о добавленных в заказ блюдах содержится в ключе "invoice" - "session"
 + 
 +=== Онлайн оплата (online_payment) === 
 + 
 +<code> 
 +
 + "hash": "0xa1fb9fc1", 
 + "code": "online_payment", 
 + "table": 1000028, 
 + "invoice": null, 
 + "order":
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "sum": 186.0, 
 + "pricelist_sum": 186.0, 
 + "table":
 + "id": 1000028, 
 + "name": "6" 
 + }, 
 + "waiter":
 + "id": 9001, 
 + "name": "Система" 
 + }, 
 + "discounts": [], 
 + "payments": [], 
 + "dishes":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "name": "Блюдо с модификатором", 
 + "price": 150.0, 
 + "count": 1.0, 
 + "sum": 150.0, 
 + "modifiers": [] 
 + }, 
 +
 + "id": 1000062, 
 + "type": "dish", 
 + "name": "Блюдо", 
 + "price": 12.0, 
 + "count": 3.0, 
 + "sum": 36.0, 
 + "modifiers": [] 
 +
 +
 + }, 
 + "table_repr":
 + "id": 1000028, 
 + "name": "6", 
 + "max_guests": 50 
 +
 +
 +</code> 
 + 
 +=== Запрос счета (bill_request) === 
 + 
 +<code> 
 +
 + "hash": "0xa1fb9fc1", 
 + "code": "bill_request", 
 + "table": 1000028, 
 + "invoice": null, 
 + "order":
 + "guid": "{F4CE1102-50DC-48F7-A8E0-74DD68A7D8C1}", 
 + "sum": 186.0, 
 + "pricelist_sum": 186.0, 
 + "table":
 + "id": 1000028, 
 + "name": "6" 
 + }, 
 + "waiter":
 + "id": 9001, 
 + "name": "Система" 
 + }, 
 + "discounts": [], 
 + "payments": [], 
 + "dishes":
 +
 + "id": 1000041, 
 + "type": "dish", 
 + "name": "Блюдо с модификатором", 
 + "price": 150.0, 
 + "count": 1.0, 
 + "sum": 150.0, 
 + "modifiers": [] 
 + }, 
 +
 + "id": 1000062, 
 + "type": "dish", 
 + "name": "Блюдо", 
 + "price": 12.0, 
 + "count": 3.0, 
 + "sum": 36.0, 
 + "modifiers": [] 
 +
 +
 + }, 
 + "table_repr":
 + "id": 1000028, 
 + "name": "6", 
 + "max_guests": 50 
 +
 +
 +</code> 
 + 
 +===== Как получить токен QR меню ===== 
 + 
 +Чтобы узнать свой токен, необходимо зайти на главную страницу QR меню, выбрать раздел "Параметры системы" - "Регистрация на сервере приложений" и скопировать значение из поля "Секретный ключ". Это и есть ваш токен. 
 + 
 +**Раздел наполняется, информация будет доступна в ближайшее время.**
  
-Раздел наполняется, информация будет доступна в ближайшее время. 
  • external/qr_меню/04_оповещения_для_персонала/09_api.1631611953.txt.gz
  • Последнее изменение: 2021/09/14 12:32
  • Александр Ильин