<?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>';
		}
    }

?>