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]¶ms[dop_param1]=param1¶ms[dop_param2]=param2¶ms[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" ] ]
Не отправленные хуки можно посмотреть, используя 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" } } ] } }