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

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

//Приём данных
$id = mysqli_real_escape_string($connect_db, trim($_POST['LMI_PAYMENT_NO']));      
$pmode = mysqli_real_escape_string($connect_db, trim($_POST['LMI_MODE']));      
$payee = mysqli_real_escape_string($connect_db, trim($_POST['LMI_PAYEE_PURSE']));      
$payer = mysqli_real_escape_string($connect_db, trim($_POST['LMI_PAYER_PURSE']));   
$payerwm = mysqli_real_escape_string($connect_db, trim($_POST['LMI_PAYER_WM']));       
$amount = mysqli_real_escape_string($connect_db, trim($_POST['LMI_PAYMENT_AMOUNT']));
$invs = mysqli_real_escape_string($connect_db, trim($_POST['LMI_SYS_INVS_NO']));   
$trans = mysqli_real_escape_string($connect_db, trim($_POST['LMI_SYS_TRANS_NO']));   
$tdate = mysqli_real_escape_string($connect_db, trim($_POST['LMI_SYS_TRANS_DATE']));   
$shastr = mysqli_real_escape_string($connect_db, strtoupper(trim($_POST['LMI_HASH'])));

$batch = $id;

//Проверка данных
$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, "Пытался провести платёж через Webmoney без созданного счёта. Номер не найденой транзакции: ".wu_filter($_POST['LMI_PAYMENT_NO']).", ip: $ip"); exit; }
if ($order['st'] == 1) { wu_log_act(2, "Пытался оплатить уже оплаченный счёт через Webmoney. Номер транзакции в системе: $batch, ip: $ip"); exit; }
if ($order['s'] != $amount) { wu_log_act(2, "Пытался оплатить счёт через Webmoney с подменой суммы. Номер транзакции в системе: $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, "Пытался провести платёж через отключенную для пополнения платёжную систему Webmoney. Номер транзакции в системе: $batch, ip: $ip"); exit; }

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

$hashed = $payee.$amount.$id.$pmode.$invs.$trans.$tdate.$key.$payer.$payerwm;
$shastring = strtoupper(hash("sha256",$hashed));
if($shastring != $shastr) { wu_log_act(2, "Пытался провести платёж с поддельным хэшем через платёжную систему Webmoney. Номер транзакции в системе: $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');
?>