View file wu-engine/wu-pay-systems/wu_res_freekassa.php

File size: 2.32Kb
<?php
require_once('../wu_init.php');

//Приём данных
$batch = mysqli_real_escape_string($connect_db, trim($_POST['MERCHANT_ORDER_ID']));
$amount = mysqli_real_escape_string($connect_db, trim($_POST['AMOUNT']));

//Проверка данных
$order = mysqli_fetch_assoc(mysqli_query($connect_db, "SELECT id,usr,ps,type,extra,s,st FROM `".DB_PREFIX."_cash_in` WHERE batch='$batch' LIMIT 1"));
if (empty($order['id'])) { wu_log_act(2, "Пытался провести платёж через FreeKassa без созданного счёта. Номер не найденой транзакции: ".wu_filter($_POST['m_orderid']).", ip: $ip"); exit; }
if ($order['st'] == 1) { wu_log_act(2, "Пытался оплатить уже оплаченный счёт через FreeKassa. Номер транзакции в системе: $batch, ip: $ip"); exit; }
if ($order['s'] != $amount) { wu_log_act(2, "Пытался оплатить счёт через FreeKassa с подменой суммы. Номер транзакции в системе: $batch, ip: $ip"); exit; }

$paysys = mysqli_fetch_assoc(mysqli_query($connect_db, "SELECT id,ident,ti,keys_in,active_in FROM `".DB_PREFIX."_pay_systems` WHERE id='$order[ps]' LIMIT 1"));
if ($paysys['active_in'] == 0) { wu_log_act(2, "Пытался провести платёж через отключенную для пополнения платёжную систему FreeKassa. Номер транзакции в системе: $batch, ip: $ip"); exit; }

//Проверка хэша
$keys_in = explode('||', $paysys['keys_in']);
$fk_merchant_id = $keys_in[0];
$fk_merchant_key = $keys_in[1];
$fk_merchant_key2 = $keys_in[2];

$hash = md5($fk_merchant_id.":".$_POST['AMOUNT'].":".$fk_merchant_key2.":".$_POST['MERCHANT_ORDER_ID']);

if ($hash != $_POST['SIGN']) { wu_log_act(2, "Пытался провести платёж с поддельным хэшем через платёжную систему FreeKassa. Номер транзакции в системе: $batch, ip: $ip"); exit; }

$usr = $order['usr'];
$extra = $order['extra'];
$sum = $order['s'];
$paysys_ti = $paysys['ti'];

//Инклуд операции
require_once('wu_res_operation_'.$order['type'].'.php');

mysqli_query($connect_db, "UPDATE `".DB_PREFIX."_cash_in` SET `st` = '1' WHERE batch='$batch' LIMIT 1");

exit('YES');
?>