Вход Регистрация
Файл: impwar.tk/xsolla_callback.php
Строк: 156
<?php


//Функции

//Проверка Ip-адреса,с которого пришёл Get-запрос
function checkIP ($ip)
    {
    if (
$ip == "94.103.26.178" || $ip = "94.103.26.181")
        {    
        return 
1;
        }
    return 
0;
    }

//Проверка существования игрока
function check_nick($id)
    {
    if (
$id == '') 
        {
        return 
0;
        }    
    
$myrow = mysql_query ("SELECT * FROM `user` WHERE `id` = '".$id."' LIMIT 1");
    
$num_rows = mysql_num_rows($myrow);
    if (
$num_rows > 0 ) 
        {
        return 
1;
        }
    return 
0;
    }
    
    
///Начисление средств    
function pay($v1, $sum, $id)
    {    
    
    
$date = date("Y-m-d H:i:s");

    
mysql_query("UPDATE `user` SET `balls` = `balls` + '".$sum."' WHERE `id` = '".$v1."' LIMIT 1");
    if(
mysql_result(mysql_query ("SELECT COUNT(*) FROM `xsolla_shop` WHERE `id_shop` = '".$id."'"),0)>0){
        
    
$paymentId=mysql_result(mysql_query ("SELECT `id` FROM `xsolla_shop` WHERE `id_shop` = '".$id."' LIMIT 1"),0);
    
    }else{
    
mysql_query ("INSERT INTO `xsolla_shop` (`id_shop`,`v1`,`sum`) VALUES ('".$id."','".$v1."','".$sum."')");
    
$paymentId = mysql_insert_id();
    
mysql_query ("INSERT INTO `xsolla_billing` (`invoice`,`v1`,`currency`,`date`,`canceled`) VALUES ('".$id."','".$v1."','".$sum."','".$date."','0')");
    
}
return 
$paymentId;
    }
    
    
///Отмена платежа,и также защита от фрода...    

function cancel ($id)
    {
    
$date = date("Y-m-d H:i:s");

    
$result = mysql_query("SELECT `currency`, `v1`, `canceled` FROM `xsolla_billing` WHERE `invoice` = '".$id."' LIMIT 1");
    
$amount = mysql_fetch_array ($result);
    
$num_rows = mysql_num_rows($result);
    if (
$num_rows > 0 && $amount['canceled'] == '0')
        {
    
        
mysql_query("UPDATE `user` SET `balls` = `balls` - '".$amount['currency']."' WHERE `id` = '".$amount['v1']."'");
        
mysql_query("UPDATE `xsolla_billing` SET `canceled` = '1', `date_cancel`= '".$date."' WHERE `invoice` = '".$id."'");
        return 
1;
        }
    return 
0;
    }
////С функциями закончили....
///Теперь непосредственно обработка того,что нам пришло

    

$isAllowed = checkIP($_SERVER['REMOTE_ADDR']);///Проверка IP


///Подключаемся к БД
$db_host='localhost'; // хост
$db_password=''; // пароль
$db_user_name=''; // имя пользователя
$db_name=''; // имя базы данных

if(!($db=@mysql_connect($db_host, $db_user_name, $db_password)))
{
die();
}


if (!@
mysql_select_db($db_name,$db))
{
die();
}

/////Подключились




$secret = "";///Вот здесь вставляете свой секретный код



////Пиздим переменные с  GET-запроса
$v1 = $_GET['v1'];
$command = $_GET['command'];
$md5 = $_GET['md5'];
$sum = $_GET['sum'];
$id = $_GET['id'];
$date = $_GET['date'];


/////Спиздили

////Проверка игрока
if ($command == "check" && $isAllowed) 
    {
    
$check = check_nick($v1);
    
    if(
$md5 != md5($command.$v1.$secret)){
    echo 
'<xml version="1.0" encoding="windows-1251"><response><result>3</result></response>';
    die();
    }
    
    
    elseif (
$check && $md5 == md5($command.$v1.$secret)) 
        {
        
$code = '0';
        
$comment = 'success';

        echo 
'<?xml version="1.0" encoding="utf-8"?><response><result>'.$code.'</result></response>';
        }
    else 
        {
        
$code = '2';
        
$comment = 'Account is disabled or not present';

        echo 
'<?xml version="1.0" encoding="utf-8"?><response><result>'.$code.'</result><comment>'.$comment.'</comment></response>';
        }
    }
    
////Проверили    
    
/////Оплата      
if ($command == "pay") 
    {
    
$check = check_nick($v1);
    
$paymentId = pay($v1,$sum,$id);
    
    if (
$paymentId) 
        {
        
$code = '0';        
        } 
    else
        {
        
$code = '4';
        
$comment = 'Invalid format of request';

        echo 
'<?xml version="1.0" encoding="windows-1251"?><response><id>'.$id.'</id><id_shop>'.$paymentId.'</id_shop><sum>'.$sum.'</sum><result>'.$code.'</result><comment>'.$comment.'</comment></response>';
        
        exit();
        }
           
           if(
$md5 != md5($command.$v1.$id.$secret)){
    echo 
'<xml version="1.0" encoding="windows-1251"><response><result>3</result></response>';
    die();
    }
           
    elseif (
$check && $paymentId && $md5 == md5($command.$v1.$id.$secret) && $isAllowed) 
        {
        echo 
'<?xml version="1.0" encoding="windows-1251"?><response><id>'.$id.'</id><id_shop>'.$paymentId.'</id_shop><sum>'.$sum.'</sum><result>0</result></response>';
        }
    else
        {
        echo 
'<?xml version="1.0" encoding="windows-1251"?><response><id>'.$id.'</id><id_shop>'.$paymentId.'</id_shop><sum>'.$sum.'</sum><result>2</result><comment>Account is disabled or not present</comment></response>';
        }
    }
/////Оплатили



////Если есть запрос на отмену,то отменяем платёж    
if ($command == "cancel") 
    {
    
$cancelResult = cancel($id);
    if(
$md5 != md5($command.$id.$secret)){
    echo 
'<xml version="1.0" encoding="windows-1251"><response><result>3</result></response>';
    die();
    }
    
    elseif (
$cancelResult && $md5 == md5($command.$id.$secret) && $isAllowed)
        {
        echo 
'<xml version="1.0" encoding="windows-1251"><response><result>0</result></response>';
        }

        
        
    else
        {
        echo 
'<xml version="1.0" encoding="windows-1251"><response><result>3</result><comment>this payment ID does not exist</comment></response>';
        }
    }

?>
Онлайн: 0
Реклама