if (sha1($r['notification_type'].'&'.
$r['operation_id'].'&'.
$r['amount'].'&'.
$r['currency'].'&'.
$r['datetime'].'&'.
$r['sender'].'&'.
$r['codepro'].'&'.
$secret.'&'.
$r['label']) != $r['sha1_hash']) {
exit( );
<?php
$mysqli = new mysqli ("localhost", "пользователь", "пароль", "БД");
$mysqli->query ("SET NAMES 'utf8'");
$secret = 'секретик'; // секрет, который мы получили в первом шаге от яндекс.
// получение данных.
$r = array(
'notification_type' => $_POST['notification_type'], // p2p-incoming / card-incoming - с кошелька / с карты
'operation_id' => $_POST['operation_id'], // Идентификатор операции в истории счета получателя.
'amount' => $_POST['amount'], // Сумма, которая зачислена на счет получателя.
'withdraw_amount' => $_POST['withdraw_amount'], // Сумма, которая списана со счета отправителя.
'currency' => $_POST['intval'], // Код валюты — всегда 643 (рубль РФ согласно ISO 4217).
'datetime' => $_POST['datetime'], // Дата и время совершения перевода.
'sender' => $_POST['sender'], // Для переводов из кошелька — номер счета отправителя. Для переводов с произвольной карты — параметр содержит пустую строку.
'codepro' => $_POST['codepro'], // Для переводов из кошелька — перевод защищен кодом протекции. Для переводов с произвольной карты — всегда false.
'label' => $_POST['label'], // Метка платежа. Если ее нет, параметр содержит пустую строку.
'sha1_hash' => $_POST['sha1_hash'] // SHA-1 hash параметров уведомления.
);
// проверка хеш
if (sha1($r['notification_type'].'&'.
$r['operation_id'].'&'.
$r['amount'].'&'.
$r['currency'].'&'.
$r['datetime'].'&'.
$r['sender'].'&'.
$r['codepro'].'&'.
$secret.'&'.
$r['label']) != $r['sha1_hash']) {
exit('Верификация не пройдена. SHA1_HASH не совпадает.'); // останавливаем скрипт. у вас тут может быть свой код.
}
// обработаем данные. нас интересует основной параметр label и withdraw_amount для получения денег без комиссии для пользователя.
// либо если вы хотите обременить пользователя комиссией - amount, но при этом надо учесть, что яндекс на странице платежа будет писать "без комиссии".
$r['amount'] = floatval($r['amount']);
$r['label'] = intval($r['label']); // здесь я у себя передаю id юзера, который пополняет счет на моем сайте. поэтому обрабатываю его intval
// дальше ваш код для обновления баланса пользователя / для вставки полученного платежа в историю платежей, например: db_query('INSERT INTO payments (user_id, amount) VALUES('.$r['label'].', ',$r['amount']')'); // ваш запрос в базу
INSERT INTO `money`(`amount`) VALUES ($r['amount']);
$mysqli->close ();
?>
<?php
// Открыть текстовый файл
$f = fopen("test.txt", "w");
// Записать текст
fwrite($f, $_POST);
// Закрыть текстовый файл
fclose($f);
// Открыть файл для чтения и прочитать строку
$f = fopen("test.txt", "r");
// Читать текст
echo fgets($f);
fclose($f);
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/php; charset=UTF-8">
</head>
<body>
<p><?php ?></p>
</body>
</html>