Вебхуки
Вебхуки используются для асинхронной передачи информации о статусе платежей. Мы отправляем HTTP POST-уведомления на указанный вами WEBHOOK_URL при изменении состояния платежа.
Request Endpoint
POST
WEBHOOK_URLHeaders
| Name | Value |
|---|---|
Content-Type | application/json |
Accept | application/json |
Request Body
| Name | Type | Description |
|---|---|---|
type | string | Тип уведомления |
data | object | Объект с данными |
salt | string | Случайная строка |
sign | string | Подпись уведомления |
Response Body
| Name | Type | Description |
|---|---|---|
status | boolean | Результат обработки уведомления |
msg | string | Описание ошибки |
Response Example
json
{
"status": true
}Важно
Webhook считается успешно обработанным только при выполнении всех условий:
- Content-Type: application/json
- В теле ответа присутствует JSON с полем "status": true
В этом случае повторная отправка уведомления прекращается.
Если хотя бы одно из условий успешной доставки не выполнено, система выполнит до 100 попыток доставки уведомления: первая повторная попытка — через 5 минут, вторая — через 10 минут, третья — через 15 минут, далее — каждые 30 минут.
Проверка подписи (sign) запроса
Для проверки подписи выполните следующие шаги:
- Получите тело запроса и конвертируйте его в массив.
- Удалите ключ sign.
- Вычислите подпись с использованием алгоритма HMAC-SHA256 на основе JSON-представления массива и секретного ключа token.
Пример обработчика уведомлений
php
$token = '041131a0906b08a5bebc1d4fdcc6d9';
header('Content-Type: application/json');
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, true);
$input_sign = $input['sign'];
unset($input['sign']);
$sign = hash_hmac('sha256', json_encode($input), $token);
if (!hash_equals($input_sign, $sign)) {
http_response_code(400);
echo json_encode([
'status' => false,
'msg' => 'Invalid signature'
]);
exit;
}
// Execute your logic
http_response_code(200);
echo json_encode([
'status' => true
]);
exit;Список IP-адресов, с которых мы отправляем уведомления
Добавьте наши IP-адреса в белый список файрвола
45.76.81.142001:19f0:6c01:878:5400:5ff:fe38:50d1207.148.69.642401:c080:1400:109b:5400:5ff:fe95:20d3