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

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

//Приём данных
$id = mysqli_real_escape_string($connect_db, $_POST['bill_id']);
$status = mysqli_real_escape_string($connect_db, $_POST['status']);
$error = mysqli_real_escape_string($connect_db, $_POST['error']);
$amount = mysqli_real_escape_string($connect_db, $_POST['amount']);
$user = mysqli_real_escape_string($connect_db, $_POST['user']);
$prv_name = mysqli_real_escape_string($connect_db, $_POST['prv_name']);
$ccy = mysqli_real_escape_string($connect_db, $_POST['ccy']);
$comment = mysqli_real_escape_string($connect_db, $_POST['comment']);
$command = mysqli_real_escape_string($connect_db, $_POST['command']);
$head = apache_request_headers();
$hash = $head['X-Api-Signature'];

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

//Проверка хэша
$keys_in = explode('||', $paysys['keys_in']);
$key = $keys_in[1];
$hash_gen = base64_encode(hash_hmac("sha1", $amount.'|'.$id.'|'.$ccy.'|'.$command.'|'.$comment.'|'.$error.'|'.$prv_name.'|'.$status.'|'.$user, $key, $raw_output=TRUE));
if ($hash_gen != $hash) {
wu_log_act(2, "Пытался провести платёж с поддельным хэшем через платёжную систему Qiwi. Номер транзакции в системе: $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");

header("HTTP/1.1 200 OK");
header('content-type: text/xml; charset=UTF-8');
echo '<!--?xml version="1.0"?--><result><result_code>0</result_code></result>'; 
exit;
?>