Событийная модель работы
Назначение | Агенты 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":{
}
}
Response содержит модель, его описание в частности для Order можно посмотреть в отдельной статье.
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
agentGuid | guid | да | Идентификатор агента в ресторане |
dateTimeServerReceiveEventFromAgent | string dateTime | да | Дата и время получения White Server события от агента. Время отправки события агрегатору колбэком может отличаться и быть несколько больше |
eventGuid | guid | да | Уникальный идентификатор события, который формирует агент |
eventType | string enum | да | Тип события, доступны варианты: |
objectId | int | да | Код ресторана в системе лицензирования |
Пример события
Пример Headers:
{
"content-length":"1140",
"signature":"+sMQMDTMoeE82ONz5ZR03ocQ+TSihyCGCW2Immrlwps=",
"content-type":"application/json; charset=utf-8"
}
Пример 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":[
]
}
}