game/interrpaykassa.php

133 lines
6.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// если в настройках кассы интерфейс в полях URL взаимодействия выставлен POST если же используется GET -
// тогда в дальше место переменной $_POST используем $_GET
$dataSet = $_POST;
//Для просмотра расширенного ответа
//$answer = 'Our answer from Interkassa :'.PHP_EOL;
//foreach ($dataSet as $key => $val) {
// $answer .= $key.' => '.$val.PHP_EOL;
//}
$c = [
/* MySQL База данных */
'db_name' => 'pay_operations', //Таблица в которую заносятся данные
'db_host' => 'localhost',
'db_user' => 'newcom1_abk',
'db_pass' => '4nWYsIM[c?}P',
'db_base' => 'newcom1_abk',
/* Настройки платежей
'ip_list' => array('127,0,0,1,188.166.34.68,136.243.38.147,136.243.38.149,136.243.38.150,136.243.38.151,136.243.38.189,88.198.88.98'), //Указывать через запятую (Разрешенные IP)
'key' => 'qtzl0igb', //gamedealer key
'id' => '65643' //ID проекта*/
];
function connect_db($c)
{
$db = mysql_connect($c['db_host'], $c['db_user'], $c['db_pass']) or die('Ошибка подключения к MySQL серверу!');
mysql_select_db($c['db_base'], $db) or die('Ошибка подключения к базе данных!');
mysql_query('SET NAMES utf8mb4');
}
$needle = $dataSet['ik_sign'];
unset($dataSet['ik_sign']);// удаляем из данных строку подписи
ksort($dataSet, SORT_STRING); // сортируем по ключам в алфавитном порядке элементы массива
$test_key = '8RRwZKMHllBKtux6'; // В данном случае используется тестовый ключ
array_push($dataSet, $test_key); // добавляем в конец массива ключ
$signString = implode(':', $dataSet); // конкатенируем значения через символ ":"
$sign = base64_encode(
md5($signString, true)
); // берем MD5 хэш в бинарном виде по сформированной строке и кодируем в BASE64
if ($needle == $sign) {
$answer .= 'Sign successfully' . PHP_EOL;
echo 'OK';
connect_db($c);
$nick = mysql_fetch_array(
mysql_query('SELECT * FROM `pay_operation` WHERE `id` = "' . $dataSet['ik_pm_no'] . '" LIMIT 1')
);
$user = mysql_fetch_array(mysql_query('SELECT * FROM `users` WHERE `id` = "' . $nick['uid'] . '" LIMIT 1'));
if (isset ($dataSet['ik_pm_no'])) {
if ($nick['good'] != 0) {
echo "Уже начисленно";
} else {
mysql_query(
'UPDATE `users` SET `money2` = `money2` + ' . $nick['ekr'] . ' WHERE `id` = "' . $nick['uid'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `pay_operation` SET `good` = "' . time(
) . '" WHERE `id` = "' . $dataSet['ik_pm_no'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `catch` = `catch` + ' . $nick['ekr'] . ' WHERE `id` = "' . $nick['uid'] . '" LIMIT 1'
);
//mysql_query('INSERT INTO `'.$c['db_name'].'` (`time`,`type`,`ip`,`value`,`money`,`project`) VALUES ("'.time().'","'.mysql_real_escape_string($type).'","'.$_SERVER['HTTP_X_REAL_IP'].'","'.mysql_real_escape_string($value).'","'.mysql_real_escape_string($money).'","'.mysql_real_escape_string($this->id).'")');
$r = '<span class=date>' . date(
'd.m.Y H:i'
) . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Администратор</b> / Автоматическая оплата</u> сообщает: ';
if ($user['sex'] == 1) {
$r .= 'Уважаемая';
} else {
$r .= 'Уважаемый';
}
$r .= ' <b>' . $user['login'] . '</b>, на Ваш игровой счет зачислено ' . $nick['ekr'] . ' Еврокредитов. Благодарим Вас за покупку!';
$chatDto = new ChatMessage();
$chatDto->setCity($user['city']);
$chatDto->setRoom($user['room']);
$chatDto->setTo($user['login']);
$chatDto->setText($r);
$chatDto->setTime(-1);
$chatDto->setType(5);
(new Chat())->sendMsg($chatDto);
if ($nick['ref'] != 0) {
$refecr = round(($nick['ekr'] / 10));
mysql_query(
'UPDATE `users` SET `money2` = `money2` + ' . $refecr . ' WHERE `id` = "' . $nick['ref'] . '" LIMIT 1'
);
$referal = mysql_fetch_array(
mysql_query('SELECT * FROM `users` WHERE `id` = "' . $nick['ref'] . '" LIMIT 1')
);
$r = '<span class=date>' . date(
'd.m.Y H:i'
) . '</span> Алхимик <img src=https://img.new-combats.com/i/align/align50.gif width=12 height=15 /><u><b>Администратор</b> / Реферальный заработок</u> сообщает: ';
if ($referal['sex'] == 1) {
$r .= 'Уважаемая';
} else {
$r .= 'Уважаемый';
}
$r .= ' <b>' . $referal['login'] . '</b>, на Ваш игровой счет зачислено ' . $refecr . ' Еврокредитов. Благодоря вашему рефералу!' . $user['login'];
$chatDto = new ChatMessage();
$chatDto->setCity($referal['city']);
$chatDto->setRoom($referal['room']);
$chatDto->setTo($referal['login']);
$chatDto->setText($r);
$chatDto->setTime(-1);
$chatDto->setType(5);
(new Chat())->sendMsg($chatDto);
}
echo "Покупател: " . $user['login'] . " | ID: " . $nick['uid'] . " | Сумма: " . $nick['ekr'] . " | ID операции: " . $dataSet['ik_pm_no'] . "<br>";
if (isset ($referal['id'])) {
echo "Реферал(тот кто привел): " . $referal['login'] . " | ID: " . $referal['id'] . " | Сумма: " . $refecr . "<br>";
} else {
echo "Пользователь реферал не найден!!";
}
}
} else {
echo "Покупатель не указан!";
}
} else {
$answer .= 'Sign do not match' . PHP_EOL;
echo 'Something bad';
}
$answer .= 'IK sing :' . $needle . PHP_EOL;
$answer .= 'locally formed :' . $sign . PHP_EOL;
file_put_contents('answer.txt', $answer);
//35.233.69.55, 34.77.232.58, 35.240.117.224