Колбэки
Уведомления на callbackUri при смене статуса. Payload совпадает по смыслу с Статус платежа.
Колбэки
При смене статуса платежа система может отправить колбэк на callbackUri указанный при создании платежа. Колбэк содержит подписанный payload, аналогичный ответу "Статус платежа" эндпоинта. В заголовке передаётся подпись.
Возможные значения state:
created- платёж создан без инвойса (метод не выбран, пользователь перенаправляется на выбор метода)pending- платёж успешно создан с выбранным методом!dispute- спор/апелляцияin_check- проверка платежа инициирована пользователем или выплата в процессе.finished- платёж успешно завершён (финальный статус).canceled- отменён пользователем или шлюзом (финальный статус для выплат).expired- срок платежа истёк.failed- не удалось создать платёж: подходящий реквизит не найден (финальный статус)
Проверка подписи колбэков
Каждый колбэк содержит заголовок Signature подписанный вашим секретным ключом. Важно проверять подпись колбэка, чтобы исключить уязвимости.
Пример проверки колбэка на JavaScript:
const crypto = require('crypto');
// callbackBody - raw body string received from callback request
const signature = callbackHeaders['Signature'];
const expectedSignature = crypto.createHmac('sha256', secretKey).update(callbackBody).digest('hex');
if (signature === expectedSignature) {
// Signature is valid - process the callback
} else {
// Signature is invalid - reject the callback
}
Пример проверки колбэка на PHP:
$callbackBody = file_get_contents('php://input');
$signature = $_SERVER['HTTP_SIGNATURE'] ?? '';
if($signature === hash_hmac('sha256', $callbackBody, $secretKey))
{
// Signature is valid - you can trust this callback
}
Примечания
Обработка ошибок: Всегда проверяйте
status: falseв ответе для корректной обработки ошибок.Ограничение частоты запросов: Слишком частые запросы могут привести к rate limiting. Обрабатывайте ответы HTTP 429.