1.4. Оповещение о платеже (Webhook)
6. Оповещение о платеже (Webhook)
После успешной оплаты система отправляет уведомление (POST-запрос) на заранее настроенный вами URL.
📡 URL: https://ВАШ_САЙТ/payment_notify.php
https://ВАШ_САЙТ/payment_notify.php
Метод: POST
Content-Type: application/x-www-form-urlencoded
📥 Передаваемые параметры:
AMOUNT
Сумма оплаты
status
Статус оплаты (success
— успешная оплата)
intid
Уникальный номер операции (внутренний ID транзакции)
SIGN
Подпись безопасности запроса (см. ниже)
MERCHANT_ORDER_ID
Идентификатор заявки, которую оплатили
🔐 Формула для проверки подписи:
md5(merchant_id . ':' . AMOUNT . ':' . secret . ':' . status . ':' . intid . ':' . MERCHANT_ORDER_ID)
Где:
merchant_id
— ID вашего проектаsecret
— секретное слово, выданное вам при подключенииВсе значения должны быть переданы в точной последовательности
✅ Пример PHP-обработчика (payment_notify.php
)
payment_notify.php
)<?php
$merchant_id = '9'; // ID проекта
$secret = 'fJIZSD1wokUsOHgffdwM'; // Секретное слово
// Полученные данные
$amount = $_POST['AMOUNT'];
$status = $_POST['status'];
$intid = $_POST['intid'];
$sign = $_POST['SIGN'];
$merchant_order_id = $_POST['MERCHANT_ORDER_ID'];
// Хеш-проверка
$expected_sign = md5($merchant_id . ':' . $amount . ':' . $secret . ':' . $status . ':' . $intid . ':' . $merchant_order_id);
if ($sign === $expected_sign && $status === 'success') {
// Рекомендуется: проверить сумму и не была ли заявка уже обработана
// Всё верно — можно проводить зачисление
echo $merchant_order_id . "|success";
exit;
} else {
// Ошибка подписи или статус не успешный
echo $merchant_order_id . "|error";
exit;
}
?>
⚠️ Рекомендации:
Всегда проверяйте сумму и необработанность заявки в базе перед зачислением.
Не забудьте вести логирование всех входящих уведомлений.
Убедитесь, что
payment_notify.php
доступен только с доверенных IP или защищён токеном.
Last updated