133 lines
6.8 KiB
PHP
133 lines
6.8 KiB
PHP
<?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
|