Файл: payment/pay/payeer/status.php
Строк: 11
<?php
require ($_SERVER['DOCUMENT_ROOT'].'/core/sys.php');
if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
{
$m_key = 'QUU-tKN-Mhc-C2V';
// Формируем массив для генерации подписи
$arHash = array(
$_POST['m_operation_id'],
$_POST['m_operation_ps'],
$_POST['m_operation_date'],
$_POST['m_operation_pay_date'],
$_POST['m_shop'],
$_POST['m_orderid'],
$_POST['m_amount'],
$_POST['m_curr'],
$_POST['m_desc'],
$_POST['m_status']
);
// Если были переданы дополнительные параметры, то добавляем их в
if (isset($_POST['m_params']))
{
$arHash[] = $_POST['m_params'];
}
// Добавляем в массив секретный ключ
$arHash[] = $m_key;
// Формируем подпись
$sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
// Если подписи совпадают и статус платежа “Выполнен”
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
{
$pay = $db->prepare('SELECT * FROM `pay` WHERE `id` = ?');
$pay -> execute([$_POST['m_orderid']]);
$pay = $pay -> fetch(PDO :: FETCH_ASSOC);
/*Присваиваем статус */
$sql = $db->prepare('UPDATE `pay` SET `status` = ? WHERE `id` = ?');
$sql -> execute(['success',$pay['id']]);
// Возвращаем, что платеж был успешно обработан
exit($_POST['m_orderid'].'|success');
}
// В противном случае возвращаем ошибку
exit($_POST['m_orderid'].'|error');
}