Webhook
Статьи о GetProcess в этой документации описывают способ получения статуса процесса с помощью вызова эндпоинта. Таким образом выполняется опрос (polling) для получения информации о созданных процессах. Это означает, что эндпоинт можно вызывать несколько раз для одного и того же процесса, чтобы получить самый актуальный статус.
С использованием Webhook можно уведомлять определённый эндпоинт каждый раз, когда статус процесса изменяется.
Что такое Webhook?
Webhook — это системный сервис уведомлений, который обеспечивает асинхронную интеграцию между системами, при которой одна система уведомляет другую с помощью триггера. Таким образом, Webhook позволяет поддерживать системы в актуальном состоянии, предоставляя самую свежую информацию без необходимости постоянного опроса для проверки обновлений.
Как настроить Webhook
Для настройки Webhook требуется следующая информация:
- URL уведомления: это эндпоинт, который Unico использует для отправки уведомлений об изменении статуса.
- Тип аутентификации: метод, используемый для аутентификации вызова эндпоинта. Доступны следующие варианты:
- OAuth2;
- Basic Authorization;
- API Key;
- Без аутентификации.
- Для OAuth2 н еобходимо предоставить следующую информацию:
- Webhook
endpoint; URLпровайдера OAuth2;ClientIdпровайдера OAuth2;Secretпровайдера OAuth2.
- Webhook
- Для Basic Authorization необходимо передавать данные в формате
user:pass. - Для API Key возможны два формата:
header:value, если требуется конкретное имя заголовка;value, если нужным заголовком являетсяAuthorization.
- Настройки повторных попыток: указывают количество попыток в случае сбоя при вызове эндпоинта:
- Максимальное количество попыток;
- Интервал между попытками (в секундах);
- Rate Limit: максимальное количество одновременных отправок (макс.: 500);
- Timeout: максимальное время ожидания ответа от эндпоинта (в секундах).
- Статусы для уведомления: вы можете подписаться на определённые статусы, чтобы получать уведомления. Среди них:
approved: транзакция одобрена;processing: транзакция в обработке;inconclusive: не удалось выполнить ок ончательную проверку;shared: транзакция передана, ожидает отправки;skipped: пользователь пропустил биометрический захват в потоке;unknown-share: пользователь отметил, что не узнаёт покупку;absent-holder: держатель карты отсутствует для выполнения захвата;expired: пользователь не завершил захват в установленное время, и срок действия транзакции истёк.
API может быть защищён методом аутентификации, таким как Basic Authentication или API Key. Для дополнительной защиты также можно определить список разрешённых IP-адресов для доступа.
Интеграция с Верификацией без предъявления карты
При настройке Webhook на платформе вы можете получать информацию о процессах через уведомления, отправляемые на эндпоинт API, который вы разработали для приёма этих обновлений.
Информация, отправляемая платформой в API, включает:
- ID: идентификатор транзакции;
- Status: статус транзакции;
- HasIdentityChanged: указывает, произошла ли смена личности в транзакции (необязательно).
Обратите внимание, что можно выбрать статусы, о которых клиент хочет получать уведомления, через настройку Webhook. После отправки этой информации ожидаемый ответ должен быть синхронным.
Запросы
Запрос должен выполняться методом POST к REST API, что упрощает и повышает безопасность отправки информации. Все поля должны быть обязательными. Тело запроса должно содержать идентификатор и статус транзакции, как показано в следующем примере:
{
"id": "8263a268-5388-492a-bca2-28e1ff4a69f0",
"status": "approved",
"hasIdentityChanged": false
}