![]() |
![]() |
Webhook — механизм получения уведомлений об определённых событиях на BezKassira.by на свой собственный ресурс.
Например, на BezKassira есть WebHook, который позволяет отслеживать изменения статусов заказов. Он вызывается каждый раз при изменении информации в заказе. По сути происходит вот что: данные заказа кладутся в JSON и отправляются на URL, указаный в настройках организации.
Для использования достаточно прописать в настройках организации URL, на который будет отправляться POST-запрос.
BezKassira посылает WebHook методом POST
с JSON
-объектом в теле запроса. Также мы подписываем WebHook с помощью hmac, что позволяет Вашим приложениям убедиться, что данные посылаем именно мы.
<?php
// Читаем содержимое POST-запроса
$body = @file_get_contents("php://input");
// Читаем содержимое заголовков
$headers = getallheaders();
// Генерируем код, которым должен быть подписан WebHook
$sha1 = hash_hmac('sha1', $body, 'secret_key');
// Сравниваем полученый код подписи, с тем что пришёл с WebHook
if ($sha1 == $headers['Http-X-Hub-Signature']) {
// WebHook пришёл от сервиса BezKassira
print_r(json_decode($body, true));
}
?>
Запрос выполняется при отмене покупателем, организатором или автоматической отмене заказа по истечении времени отведенного на оплату.
Запрос выполняется при оплате покупателем заказа полностью или частично.
Запрос выполняется при возврате билетов.
Запрос выполняется при аннулировании билетов. Данные запроса аналогичны запросу rollbackOrder
Отметка о посещении посетителя
Принимающий WebHook скрипт в случае успеха должен отвечать http-кодом 200
. При получении любого другого кода BezKassira считает попытку отправки данных неудачной.
В таких случаях запрос будет отправлен на этот же адрес с теми же данными через час. Если эта попытка тоже не удалась, следующая состоится через сутки. После этого запрос будет удалён из очереди, даже если доставка так и не состоялась.