1.4. Оповещение о платеже (Webhook)

6. Оповещение о платеже (Webhook)

После успешной оплаты система отправляет уведомление (POST-запрос) на заранее настроенный вами URL.

📡 URL: 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)

<?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