Задача в следующем проверять входящие платежи на яндекс деньги, после чего заносить в базу данные о платеже
Вот сама форма оплаты
<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
<input type="hidden" name="receiver" value="410012043217827"><br>
<input type="hidden" name="formcomment" value="Пополнение баланса в smm-servis.ru">
<input type="hidden" name="short-dest" value="Пополнение баланса в smm-servis.ru">
<input type="hidden" name="label" value="<?php echo $UserID; ?>">
<input type="hidden" name="quickpay-form" value="donate">
<input type="hidden" name="targets" value="Пополнение пользователя <?php echo $UserName; ?>">
<input type="number" name="sum" placeholder="Минимум 10 руб." data-type="number" class="input-md round form-control def-text" style="width:261px;">
<input type="hidden" name="comment" value="<?php echo $UserName; ?>" >
<input type="hidden" name="need-fio" value="false">
<input type="hidden" name="need-fio" value="false">
<input type="hidden" name="need-email" value="false" >
<input type="hidden" name="need-phone" value="false">
<input type="hidden" name="need-address" value="false">
<input type="radio" name="paymentType" value="PC" checked>Яндекс.Деньгами</input><br>
<input type="radio" name="paymentType" value="AC">Банковской картой</input><br>
<input type="submit" name="submit-button" style="width:261px;" class="submit_btn btn btn-mod btn-medium btn-round" value="Пополнение Yandex">
</form>
Ну а тут обработчик, который должен срабатывать при поступление нового платежа
$secret = '1O3l02UU2QXSxq9mkl1GriNQ'; // секрет, который мы получили в первом шаге от яндекс.
// получение данных.
$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['withdraw_amount'] = floatval($r['withdraw_amount']);
$r['label'] = intval($r['label']); // здесь я у себя передаю id юзера, который пополняет счет на моем сайте. поэтому обрабатываю его intval
$time = time();
// дальше ваш код для обновления баланса пользователя / для вставки полученного платежа в историю платежей, например:
$qz = mysql_query ("INSERT INTO `deposits`(`DepositUserID`,`DepositAmount`,`DepositType`,`DepositDate`) VALUES ('$r['label']','$r['amount']','Yandex','time()')",$db);
$qz = mysql_query ("UPDATE `users` SET `UserBalance`=`UserBalance` + '$r['amount']' WHERE `UserID`='$r['label']'",$db);
Но в итоге данные в базу не вносятся, баланс пользователя не пополняется