2022-06-06 21:30:34 +00:00
< ? php
2023-01-10 16:29:32 +00:00
// если в настройках кассы интерфейс в полях URL взаимодействия выставлен POST если же используется GET -
// тогда в дальше место переменной $_POST используем $_GET
2022-06-06 21:30:34 +00:00
$dataSet = $_POST ;
2023-01-10 16:29:32 +00:00
//Для просмотра расширенного ответа
2022-06-06 21:30:34 +00:00
//$answer = 'Our answer from Interkassa :'.PHP_EOL;
//foreach ($dataSet as $key => $val) {
// $answer .= $key.' => '.$val.PHP_EOL;
//}
2023-01-28 02:24:37 +00:00
$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' );
}
2022-06-06 21:30:34 +00:00
$needle = $dataSet [ 'ik_sign' ];
2023-01-10 16:29:32 +00:00
unset ( $dataSet [ 'ik_sign' ]); // удаляем из данных строку подписи
ksort ( $dataSet , SORT_STRING ); // сортируем по ключам в алфавитном порядке элементы массива
$test_key = '8RRwZKMHllBKtux6' ; // В данном случае используется тестовый ключ
array_push ( $dataSet , $test_key ); // добавляем в конец массива ключ
$signString = implode ( ':' , $dataSet ); // конкатенируем значения через символ ":"
2023-01-28 02:24:37 +00:00
$sign = base64_encode (
md5 ( $signString , true )
); // берем MD5 хэш в бинарном виде по сформированной строке и кодируем в BASE64
2022-06-06 21:30:34 +00:00
if ( $needle == $sign ) {
2023-01-28 02:24:37 +00:00
$answer .= 'Sign successfully' . PHP_EOL ;
2022-06-06 21:30:34 +00:00
echo 'OK' ;
2023-01-10 17:26:14 +00:00
2023-01-28 02:24:37 +00:00
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 " Пользователь реферал не найден!! " ;
}
2022-06-06 21:30:34 +00:00
2023-01-28 02:24:37 +00:00
}
} else {
echo " Покупатель не указан! " ;
}
2022-06-06 21:30:34 +00:00
} else {
2023-01-28 02:24:37 +00:00
$answer .= 'Sign do not match' . PHP_EOL ;
2022-06-06 21:30:34 +00:00
echo 'Something bad' ;
}
2023-01-28 02:24:37 +00:00
$answer .= 'IK sing :' . $needle . PHP_EOL ;
$answer .= 'locally formed :' . $sign . PHP_EOL ;
2022-06-06 21:30:34 +00:00
file_put_contents ( 'answer.txt' , $answer );
//35.233.69.55, 34.77.232.58, 35.240.117.224