Настройка веб-хуков

Веб-хуки, настройка веб-хуков

1. Создать страничку или API, на которую будет присылаться хук. Она должна успешно отвечать на запрос: 

curl -X POST https://exemple.com -d "name=sessionUpdate&data[id]=5&data[user_id]=1&data[session_key]=11111111111111111111111111111111&data[create_date]=2019-09-12%2013:29:51&data[update_date]=now()&data[php_session]=22222222222222222222222222&data[IP]=172.18.0.1&data[is_support]=0]&params[dop_param1]=param1&params[dop_param2]=param2&params[dop_param3]=param3"

где exemple.com — это полный путь к файлу обработчика

2. В настройках Ветменежера выбрать Справочники → Сервисы для хук-уведомлений → Добавить. Заполнить поля и нажать кнопку Сохранить.

Если необходимо ограничить выборку по событиям (из большого списка протестировать только некоторые из них) то необходимо эти события перечислить в поле "Параметр 3" хука. В этом случае из хука будут слаться запросы только при срабатывании событий, перечисленных в этом параметре. Например: invoiceAdd,invoiceEdit

 3. Пример получения данных на событие goodEdit (редактирование товара). Ваш сайт получит данные в виде массива: 

[
     ["name"]=> "goodEdit"
     ["data"]=> [
          ["id"]=> "5380"
          ["group_id"]=>"65"
          ["title"]=>"sfsdf"
          ["unit_storage_id"]=>"5"
          ["is_warehouse_account"]=>"1"
          ["is_active"]=>"1"
          ["code"]=>""
          ["is_call"]=>"0"
          ["is_for_sale"]=>"1"
          ["barcode"]=>""
          ["description"]=>""
          ["prime_cost"]=>"0.0000000000"
     ]
     ["params"]=> [
               ["dop_param1"]=>"1" <- здесь будет значение, которое было введено в настройках хука в поле "Параметр 1"
               ["dop_param2"]=>"2"
               ["dop_param3"]=>"3"
          ]
]



  • name — название события; 
  • data — данные о событии; 
  • params — те параметры, которые вводятся при создании хук-уведомления.

Не отправленные хуки можно посмотреть, используя api: Доступ к хукам, которые не удалось отправить.

Если на сервис клиента не удалось отправить более 1000 запросов, то сервис отключается и хуки на него больше не отправляются. Чтобы восстановить работу, необходимо почистить список упавших хуков, как описано в инструкции.

Ветменеджер поддерживает следующие события:

Название событияОписаниеДанные события
admissionInvoicesSumChangedсрабатывает, когда выполняется счет на клиента для приемов, которые запланированы на тот же день, что и счет.данные по приему, где id - ид приема, invoices_sum - сумма по счетам, admission_date - дата приема, client_id - ид клиента, patient_id - ид питомца, status - статус приема



4. Пример запроса на получение id справочника с хук-уведомлениями 

curl --location --request GET 'https://{Domain URL}/rest/api/ComboManualName?filter=[{'property':'name', 'value':'services_for_hooks'}]' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \

Ответ сервера: 

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "1",
          "comboManualName": [
               {
                    "id": "11",
                    "title": "Сервисы для хук-уведомлений",
                    "is_readonly": "0",
                    "name": "services_for_hooks",
                    "comboManualItems": [
                         {
                              "id": "199",
                              "combo_manual_id": "11",
                              "title": "admissionAccepted",
                              "value": "value",
                              "dop_param1": "1", <-параметры введённые в настройках Хука
                              "dop_param2": "2",
                              "dop_param3": "3",
                              "is_active": "0"
                         },

                         ....

                         {
                              "id": "187",
                              "combo_manual_id": "11",
                              "title": "noName",
                              "value": "value",
                              "dop_param1": "1",
                              "dop_param2": "2",
                              "dop_param3": "3",
                              "is_active": "0"
                         }
                    ]
               }
          ]
     }
}


5. Пример запроса на получение списка хук-уведомлений с фильтром по id справочника

curl --location --request GET 'https://{Domain URL}/rest/api/ComboManualItem?filter=[{'property':'combo_manual_id', 'value':'{{ID}}'},{'property':'is_active', 'value':'1'}]' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \

Параметры:

is_active: 0 - неактивный, 1 - активный
is_active: 0 - хук уведомления не отправляются

Ответ сервера:

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "1",
          "comboManualItem": [
               {
                    "id": "251",
                    "combo_manual_id": "11",
                    "title": "startInvoiceRun",
                    "value": "value",
                    "dop_param1": "1", <- параметры введённые в настройках Хука
                    "dop_param2": "2",
                    "dop_param3": "3",
                    "is_active": "1",
                    "comboManualName": {
                         "id": "11",
                         "title": "Сервисы для хук-уведомлений",
                         "is_readonly": "0",
                         "name": "services_for_hooks"
                    }
               }
          ]
     }
}
Powered by