View file element_xsolla_payment.php

File size: 7.77Kb
<?php
require_once './element_options/element_options.php';

	$IpList = array("94.103.26.178", 	"94.103.26.181", 	"159.255.220.241", "159.255.220.242", 
					"159.255.220.243", 	"159.255.220.244", 	"159.255.220.245", "159.255.220.246", 
					"159.255.220.247",	"159.255.220.248", 	"159.255.220.249", "159.255.220.250", 
					"159.255.220.251", 	"159.255.220.252", 	"159.255.220.253", "159.255.220.254");
	if(!in_array(my_ip(), $IpList)) exit('error IP');
	
	//if (my_ip() != '94.103.26.178') exit('error');

$xsolla_command = (isset($_GET['command'])) ? preg_replace("/[^\w\x7F-\xFF\s]/", "", $_GET['command']) : false;	// Команда
$xsolla_v1 = (isset($_GET['v1']) AND is_numeric($_GET['v1'])) ? (int)$_GET['v1'] : false;	// ИД юзера для проверки
$xsolla_md5 = (isset($_GET['md5'])) ? $_GET['md5'] : false;	// Хеширование


$id_project = '12431'; // Идентификатор Битвы Стихий на Иксолле
$secret_key = 'YU?AhQb6hXiMO?Upyr!!;n8b5=k8&*LT'; // Секретный ключ

	// Команда на проверку юзера
	if ($xsolla_command == 'check') {
		$real_md5 = md5('check'.$xsolla_v1.$secret_key);
		$result_user = mysql_result(mysql_query("SELECT COUNT(lost_id) FROM `element_user` WHERE `lost_id` = '$xsolla_v1'"), 0);
		
		// Если юзер существует и хэш ИКСОЛЛЫ равен МОЕМУ, то платеж разрешаем
		if ($real_md5 == $xsolla_md5 AND $result_user > 0) {
			echo '<?xml version="1.0" encoding="windows-1251"?><response><result>0</result></response>';
		} else {
			echo '<?xml version="1.0" encoding="windows-1251"?><response>
					<result>7</result>
					<comment>Account is disabled or not present</comment>
					</response>';
		}
	exit;
	}
	
	// Команда на совершение платежа
	if ($xsolla_command == 'pay') {
	$xsolla_id = (isset($_GET['id']) AND is_numeric($_GET['id'])) ? (int)$_GET['id'] : false;	// ИД платежа для проверки
	$xsolla_summa = (isset($_GET['sum']) AND is_numeric($_GET['sum'])) ? (int)$_GET['sum'] : 0;
	$xsolla_date = $_GET['date'];
	
		$real_md5 = md5('pay'.$xsolla_v1.$xsolla_id.$secret_key);
	
	// Запрос на проверку, есть уже платеж с таким идентификатором
	$pay = mysql_fetch_array(mysql_query("SELECT * FROM `element_xsolla` WHERE `lost_xsolla_id` = '$xsolla_id' LIMIT 1"));
	
		
		
		
		// Если этого платежа ещё нету, и хэши совпадают, пополняем.
		if (!$pay AND $real_md5 == $xsolla_md5) {
			require_once './element_function/element_function_users.php';
			require_once './element_function/element_function_mail.php';
			
			$xsolla_user = cache_user($xsolla_v1);							// кэш данных юзера
			$profile_other = explode(' ', $xsolla_user['lost_other']);		// Разбиваем на массив
			$profile_other[2] = $profile_other[2] + 1;						// Добавляем +1 письмо
			$xsolla_user['lost_other'] = implode(' ', $profile_other);		// Возвращаем массив в строку
			
			// Обновляем данные юзера
			update_money_exp($xsolla_user, 0, 0, 0, $xsolla_summa);
			
			// Заносим платеж в Базу Данных
			mysql_query("INSERT INTO `element_xsolla` SET `lost_xsolla_id` = '$xsolla_id',
														  `lost_user` = '$xsolla_v1',
														  `lost_sum` = '$xsolla_summa',
														  `lost_date` = '$xsolla_date',
														  `lost_refferal` = '0',
														  `lost_time` = '".time()."'");
			$insert_xsolla = mysql_insert_id();
		
			$lost_sub_text = 'Вас счёт успешно пополнен на <img src="/images/icons/gold.png">'.$xsolla_summa.' золота';
			$lost_text = '<span class="admin">Ваш счёт успешно пополнен на <img src="/images/icons/gold.png">'.$xsolla_summa.' золота.<br/></span>';
			mysql_query("INSERT INTO `element_mail` SET `lost_out` = '0',
														`lost_in` = '$xsolla_v1',
														`lost_sub_text` = '$lost_sub_text',
														`lost_text` = '$lost_text',
														`lost_user_out` = '0',
														`lost_user_in` = '$xsolla_v1',
														`lost_time` = '".time()."',
														`lost_system` = 'Банк',
														`lost_new` = '1'");		
														
			$count_in = Cache_Count_Message($xsolla_v1);
			if (!empty($count_in['all'])) $count_in['all']++;
			if (!empty($count_in['in'])) $count_in['in']++;
			if (!empty($count_in['new'])) $count_in['new']++;
			writecache('element_count_message'.$xsolla_v1, $count_in);	
		
				if ($xsolla_user['lost_refferer'] > 0) {
					$xsolla_user1 = cache_user($xsolla_user['lost_refferer']);			// кэш данных юзера
					$profile_other1 = explode(' ', $xsolla_user1['lost_other']);		// Разбиваем на массив
					$profile_other1[2] = $profile_other1[2] + 1;						// Добавляем +1 письмо
					$xsolla_user1['lost_other'] = implode(' ', $profile_other1);		// Возвращаем массив в строку
				
					$summa_ref = (int)(($xsolla_summa / 100) * 10);
					// Обновляем данные юзера
					update_money_exp($xsolla_user1, 0, 0, 0, $summa_ref);
				
					// Заносим платеж в Базу Данных
					mysql_query("INSERT INTO `element_xsolla` SET `lost_xsolla_id` = '0',
																`lost_user` = '$xsolla_user1[lost_id]',
																`lost_sum` = '$summa_ref',
																`lost_date` = '$xsolla_date',
																`lost_refferal` = '1',
																`lost_time` = '".time()."'");
				
					$lost_sub_text = 'Партнерское вознаграждение: <img src="/images/icons/gold.png">'.$summa_ref.' золота';
					$lost_text = '<span class="admin">Партнерское вознаграждение: <img src="/images/icons/gold.png">'.$summa_ref.' золота.<br/></span>';
					mysql_query("INSERT INTO `element_mail` SET `lost_out` = '0',
														`lost_in` = '$xsolla_user1[lost_id]',
														`lost_sub_text` = '$lost_sub_text',
														`lost_text` = '$lost_text',
														`lost_user_out` = '0',
														`lost_user_in` = '$xsolla_user1[lost_id]',
														`lost_time` = '".time()."',
														`lost_system` = 'Банк',
														`lost_new` = '1'");	
					
					$count_in1 = Cache_Count_Message($xsolla_v1);
					if (!empty($count_in1['all'])) $count_in1['all']++;
					if (!empty($count_in1['in'])) $count_in1['in']++;
					if (!empty($count_in1['new'])) $count_in1['new']++;
					writecache('element_count_message'.$xsolla_user1['lost_id'], $count_in1);	
				}
		
		
		echo '<?xml version="1.0" encoding="windows-1251"?>
					<response>
					<id>'.$xsolla_id.'</id>
					<id_shop>'.$insert_xsolla.'</id_shop>
					<sum>'.$xsolla_summa.'</sum>
					<result>0</result>
					</response>';
		exit;
		} 
		
		// Если этого платежа ещё нету, но хэши не равны, выводим ошибку
		if (!$pay AND $real_md5 != $xsolla_md5) {
			echo '<?xml version="1.0" encoding="windows-1251"?>
					<response>
					<id>'.$xsolla_id.'</id>
					<id_shop>0</id_shop>
					<sum>'.$xsolla_summa.'</sum>
					<result>1</result>
					<comment>Temporarily database error</comment>
					</response>';
		exit;
		} 
		
		// Если такой платеж уже был и хэш верный, то просто говорим об этом иксолле
		if ($pay AND $real_md5 == $xsolla_md5) {
			echo '<?xml version="1.0" encoding="windows-1251"?>
					<response>
					<id>'.$xsolla_id.'</id>
					<id_shop>'.$pay['lost_id'].'</id_shop>
					<sum>'.$pay['lost_sum'].'</sum>
					<result>0</result>
					</response>';
		exit;
		}
	
	
	}


?>