Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.23 KB | None | 0 0
  1. <?php
  2.  
  3. $config = require "../config.php";
  4. require "../database.php";
  5. require "../rcon.php";
  6.  
  7. $database = new DataBase(
  8.   $config["mysql"]["host"],
  9.   $config["mysql"]["user"],
  10.   $config["mysql"]["password"],
  11.   $config["mysql"]["database"]
  12. );
  13.  
  14. function upSign($method, $params, $secretKey) {
  15.   ksort($params);
  16.   unset($params['sign']);
  17.   unset($params['signature']);
  18.   array_push($params, $secretKey);
  19.   array_unshift($params, $method);
  20.  
  21.   return hash('sha256', join('{up}', $params));
  22. }
  23.  
  24. $method = $_GET['method'];
  25. $params = $_GET['params'];
  26.  
  27. $id = explode("_", $params['account']);
  28. $id = $id[0];
  29.  
  30. if($params['signature'] != upSign($method, $params, $config["unitpay"]["secret_key"])) {
  31.   exit('{"error": {"message": "Некорректная цифровая подпись"}}');
  32. } elseif($method != 'pay') {
  33.   exit('{"result": {"message":"Запрос успешно обработан"}}');
  34. }
  35.  
  36. $payment = $database->select("SELECT * FROM `cd_payments` WHERE `id` = {?}", [$id]);
  37.  
  38. if(empty($payment)) {
  39.   exit('{"error": {"message": "Платеж с таким номером заказа не был найден"}}');
  40. } elseif($payment[0]['sum'] != $params['orderSum']) {
  41.   exit('{"result": {"message": "Сумма платежа не совпадает с исходной"}}');
  42. } elseif($payment[0]['status'] == 1) {
  43.   exit('{"error": {"message": "Данный платеж уже оплачен"}}');
  44. } else {
  45.   $database->query("UPDATE `cd_payments` SET `status` = 1 WHERE `id` = {?}", [$id]);
  46.  
  47.   $rcon = new Rcon(
  48.     $config["rcon"]["host"],
  49.     $config["rcon"]["port"],
  50.     $config["rcon"]["password"],
  51.     $config["rcon"]["timeout"]
  52.   );
  53.  
  54.   if($rcon->connect()) {
  55.     $array = exlode("," $payment[0]["values"]);
  56.     foreach($array as $value) {
  57.       $ex = explode("-", $value);
  58.  
  59.       $permission = $config["capabilities"][$ex[1]]["permission"];
  60.       $command = str_replace("{username}", $payment[0]["username"], $config["give_command"]);
  61.       $command = str_replace("{perm}", $permission, $command);
  62.  
  63.       $rcon->sendCommand($command);
  64.     }
  65.   }
  66.  
  67.   exit('{"result": {"message": "Заказ был успешно оплачен. Вы можете вернуться на главную"}}');
  68. }
  69.  
  70. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement