Назначение

Агенты v2, находящиеся в ресторанах, могут отправлять события на White Server. White Server может переслать события агрегаторам при помощи https Post колбэка. Для приема колбэков агрегатору необходимо иметь web-сервер.

В частности агенты могут отслеживать изменения по заказам r_keeper.

Поддерживаемая версия агентаv2

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

Чтобы подписаться на события (events), агрегатору необходимо сообщить команде White Server:

  • Адрес своего сервера получателя колбэков — можно указать несколько URL
  • Список событий, которые требуется получать.

White Server отправляет события при помощи Post-запросов:

  • Body — в виде json запроса
  • Headers — здесь добавлено поле Signature для проверки хэш кода содержимого body, удостоверяющее отправителя.

Типы событий:

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

Формат Body

{
   "responseEventCommon":{
      "objectId":number,
      "agentGuid":"guid",
      "eventGuid":"guid",
      "dateTimeServerReceiveEventFromAgent":"string dateTime",
      "eventType":"OrderChanged"
   },
   "response":{
   
   }
}
JSON

Response содержит модель, его описание в частности для Order можно посмотреть в отдельной статье.

Параметр

Тип

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

Описание

agentGuidguidдаИдентификатор агента в ресторане
dateTimeServerReceiveEventFromAgentstring dateTimeдаДата и время получения White Server события от агента. Время отправки события агрегатору колбэком может отличаться и быть несколько больше 
eventGuidguidдаУникальный идентификатор события, который формирует агент
eventTypestring enumда

Тип события, доступны варианты:

objectIdintдаКод ресторана в системе лицензирования

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

Пример Headers:

{
"content-length":"1140",
"signature":"+sMQMDTMoeE82ONz5ZR03ocQ+TSihyCGCW2Immrlwps=",
"content-type":"application/json; charset=utf-8"
}
JSON

Пример Body:

{
   "responseEventCommon":{
      "objectId":19999999,
      "agentGuid":"a63d8b95-8ea0-d83c-8db3-eac3692bcbf2",
      "eventGuid":"31ee5577-5e75-4b5c-bad3-b650e5acb16f",
      "dateTimeServerReceiveEventFromAgent":"2020-12-11T11:36:51.7032158+03:00",
      "eventType":"OrderChanged"
   },
   "response":{
      "originalOrderId":"",
      "tableCode":2,
      "orderGuid":"5e964af3-6e1d-4661-4db1-08d897c7079a",
      "createdAt":"2020-12-10T18:33:19",
      "appliedPayments":[
         {
            "amount":120,
            "guid":"{B2C21309-7E24-4486-B04A-2C012A620C01}",
            "payType":"Unknown"
         }
      ],
      "status":{
         "value":"Complited",
         "isBillPrinted":true
      },
      "midServerPiblicId":"",
      "personsQuantity":0,
      "expeditionType":"Delivery",
      "products":[
         {
            "id":"1000016",
            "name":"Каша",
            "price":"1200000,00",
            "quantity":1,
            "ingredients":[
                
            ]
         }
      ],
      "price":{
         "total":120,
         "sumToPay":0
      },
      "waiter":"Внешнее редактирование через XML",
      "tableName":"2",
      "extraTableCodes":[
          
      ]
   }
}
JSON