Завести хук и сценарий
1
Откройте хуки компании
На платформе откройте Автоматизации → Хуки и правила, выберите компанию справа вверху и останьтесь на вкладке «Входящие хуки».
2
Заведите хук
Нажмите Новый хук. В поле «Название» напишите, откуда приходят события. Поля «Где в событии его номер» и «Секрет подписи» описаны ниже: без них сценарий сможет только готовить документы. Нажмите Сохранить.
3
Скопируйте адрес
Откроется окно с адресом хука. Скопируйте его сразу: больше он нигде не показывается.
4
Укажите адрес у отправителя
Вставьте адрес в настройки системы, которая будет присылать события. События отправляются запросом POST, обычно в формате JSON.
5
Привяжите сценарий
В разделе Автоматизации нажмите Новый сценарий, в поле «Когда запускать» выберите «По событию хука» и выберите хук в поле «Хук». В поручении опишите, что делать с событием.
Адрес хука служит паролем
Для отправки события не нужны ни вход, ни ключ: достаточно знать адрес. Кто знает адрес, может слать события этой компании. Храните его как пароль и не пересылайте в открытой переписке. Адрес показывается один раз, при создании. В списке хуков видны только его последние знаки, чтобы вы могли узнать, какой адрес настроен у отправителя. Если адрес потерян или попал к посторонним, в меню хука нажмите Перевыпустить адрес. Прежний адрес сразу перестанет работать, новый нужно указать у отправителя.Подпись
Подпись доказывает, что событие прислал ваш отправитель, а не тот, кто узнал адрес. В поле «Секрет подписи» задайте секрет от 16 знаков и тот же секрет укажите у отправителя. После сохранения секрет не показывается. Отправитель считает HMAC-SHA256 от тела запроса с этим секретом и присылает результат шестнадцатеричной строкой в заголовкеx-signature. Допустима приставка sha256=. Если ваша система кладёт подпись в другой заголовок, назовите его в поле «Заголовок с подписью».
Пока секрет задан, событие без подписи или с неверной подписью не принимается. В списке хуков у такого хука стоит «Проверяется», у хука без секрета — «Без подписи».
Пример запроса для проверки:
Номер события
Системы часто присылают одно и то же событие повторно, если не дождались ответа. Чтобы повтор не запустил сценарий второй раз, Tungo запоминает номер события. В поле «Где в событии его номер» укажите путь к номеру платежа или чека в теле события. Вложенные поля пишутся через точку: для события из примера этоid, для номера внутри блока payment — payment.id.
Событие с номером, который уже приходил, принимается, но сценарии не запускает. Номера помнятся бессрочно, поэтому отправитель не должен использовать один номер для разных операций: вторая будет считаться повтором.
Если путь не задан, номер берётся из заголовка Idempotency-Key или X-Event-Id. Если нет и их, повтором считается событие с точно таким же телом, пришедшее вскоре после первого.
Подпись и номер из тела события обязательны, если сценарий должен сам записывать документы в 1С. Без любого из них документы ждут человека: Разрешить сценарию запись в 1С.
Что получит отправитель в ответ
- 202: новое событие принято, сценарии запускаются.
- 200 с пометкой
duplicate: это повтор, сценарии не запускались. - 401: подпись не сходится.
- 404: такого хука нет. Так же отвечает выключенный и удалённый хук.
- 413: событие слишком большое.
- 429: событий слишком много или очередь запусков компании заполнена. Отправителю нужно повторить позже.
Что дальше
- Разрешить сценарию запись в 1С: что нужно, чтобы документы по событиям записывались сами.
- Вебхуки: как вашей системе узнать итог запуска.
- Смотреть запуски и разбирать ошибки: что стало с каждым событием.