2023-03-04 23:45:46 +00:00
< ? php
2024-04-10 20:20:14 +00:00
/*
* EngineGP ( https :// enginegp . ru or https :// enginegp . com )
*
2024-04-10 20:31:20 +00:00
* @ copyright Copyright ( c ) 2018 - present Solovev Sergei < inbox @ seansolovev . ru >
*
* @ link https :// github . com / EngineGPDev / EngineGP for the canonical source repository
* @ link https :// gitforge . ru / EngineGP / EngineGP for the canonical source repository
*
* @ license https :// github . com / EngineGPDev / EngineGP / blob / main / LICENSE MIT License
* @ license https :// gitforge . ru / EngineGP / EngineGP / src / branch / main / LICENSE MIT License
2024-04-10 20:20:14 +00:00
*/
2023-11-12 18:12:42 +00:00
if ( ! DEFINED ( 'EGP' ))
2023-12-23 01:50:14 +00:00
exit ( header ( 'Refresh: 0; URL=http://' . $_SERVER [ 'HTTP_HOST' ] . '/404' ));
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( ! isset ( $_POST [ 'MERCHANT_ID' ]) || $_POST [ 'MERCHANT_ID' ] != $cfg [ 'freekassa_id' ])
sys :: out ( 'bad kassa' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$key = md5 ( $_POST [ 'MERCHANT_ID' ] . ':' . $_POST [ 'AMOUNT' ] . ':' . $cfg [ 'freekassa_key_2' ] . ':' . $_POST [ 'MERCHANT_ORDER_ID' ]);
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( ! isset ( $_POST [ 'MERCHANT_ID' ]) || $_POST [ 'SIGN' ] != $key )
sys :: out ( 'bad sign' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( ! isset ( $_POST [ 'AMOUNT' ]))
sys :: out ( 'bad amount' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sum = round ( $_POST [ 'AMOUNT' ], 2 );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
// Оплата по ключу
if ( ! sys :: valid ( $_POST [ 'us_user' ], 'md5' )) {
$sql -> query ( 'SELECT `id`, `server`, `price` FROM `privileges_buy` WHERE `key`="' . $_POST [ 'us_user' ] . '" LIMIT 1' );
if ( ! $sql -> num ())
sys :: out ( 'bad key' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$privilege = $sql -> get ();
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$money = round ( $sum * $cfg [ 'curinrub' ], 2 );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( $money < $privilege [ 'price' ])
sys :: out ( 'bad sum' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'SELECT `user` FROM `servers` WHERE `id`="' . $privilege [ 'server' ] . '" LIMIT 1' );
if ( ! $sql -> num ())
sys :: out ( 'bad server' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$server = $sql -> get ();
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'SELECT `id`, `balance`, `part_money` FROM `users` WHERE `id`="' . $server [ 'user' ] . '" LIMIT 1' );
if ( ! $sql -> num ())
sys :: out ( 'bad owner' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$user = $sql -> get ();
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( $cfg [ 'part_money' ])
$sql -> query ( 'UPDATE `users` set `part_money`="' . ( $user [ 'part_money' ] + $money ) . '" WHERE `id`="' . $user [ 'id' ] . '" LIMIT 1' );
else
$sql -> query ( 'UPDATE `users` set `balance`="' . ( $user [ 'balance' ] + $money ) . '" WHERE `id`="' . $user [ 'id' ] . '" LIMIT 1' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'INSERT INTO `logs` set `user`="' . $user [ 'id' ] . '", `text`="' . sys :: updtext ( sys :: text ( 'logs' , 'profit' ),
array ( 'server' => $privilege [ 'server' ], 'money' => $money )) . '", `date`="' . $start_point . '", `type`="part", `money`="' . $money . '"' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'UPDATE `privileges_buy` set `status`="1" WHERE `id`="' . $privilege [ 'id' ] . '" LIMIT 1' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
sys :: out ( 'YES' );
}
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$user = intval ( $_POST [ 'us_user' ]);
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'SELECT `id`, `balance`, `part` FROM `users` WHERE `id`="' . $user . '" LIMIT 1' );
if ( ! $sql -> num ())
sys :: out ( 'bad user' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$user = $sql -> get ();
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$money = round ( $user [ 'balance' ] + $sum * $cfg [ 'curinrub' ], 2 );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( $cfg [ 'part' ]) {
$part_sum = round ( $sum / 100 * $cfg [ 'part_proc' ], 2 );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'SELECT `balance`, `part_money` FROM `users` WHERE `id`="' . $user [ 'part' ] . '" LIMIT 1' );
if ( $sql -> num ()) {
$part = $sql -> get ();
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
if ( $cfg [ 'part_money' ])
$sql -> query ( 'UPDATE `users` set `part_money`="' . ( $part [ 'part_money' ] + $part_sum ) . '" WHERE `id`="' . $user [ 'part' ] . '" LIMIT 1' );
else
$sql -> query ( 'UPDATE `users` set `balance`="' . ( $part [ 'balance' ] + $part_sum ) . '" WHERE `id`="' . $user [ 'part' ] . '" LIMIT 1' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'INSERT INTO `logs` set `user`="' . $user [ 'part' ] . '", `text`="' . sys :: updtext ( sys :: text ( 'logs' , 'part' ),
array ( 'part' => $uid , 'money' => $part_sum )) . '", `date`="' . $start_point . '", `type`="part", `money`="' . $part_sum . '"' );
}
}
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'UPDATE `users` set `balance`="' . $money . '" WHERE `id`="' . $user [ 'id' ] . '" LIMIT 1' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
$sql -> query ( 'INSERT INTO `logs` set `user`="' . $user [ 'id' ] . '", `text`="Пополнение баланса на сумму: ' . $sum . ' ' . $cfg [ 'currency' ] . '", `date`="' . $start_point . '", `type`="replenish", `money`="' . $sum . '"' );
2023-03-04 23:45:46 +00:00
2023-11-12 18:12:42 +00:00
sys :: out ( 'YES' );