array('message' => 'Некорректный адрес сервера'))); $secretKey = $cfg['unitpay_key']; $params = $_GET['params']; if ($params['signature'] != getSha256SignatureByMethodAndParams( $_REQUEST["method"], $params, $GATEWAY['SecretKey'] )) ; if (!in_array($_GET['method'], array('pay', 'check', 'error'))) sys::outjs(array('error' => array('message' => 'Некорректный метод'))); // Оплата по ключу if (!sys::valid($params['account'], 'md5')) { $sql->query('SELECT `id`, `server`, `price` FROM `privileges_buy` WHERE `key`="' . $params['account'] . '" LIMIT 1'); if (!$sql->num()) sys::outjs(array('error' => array('message' => 'bad key: ' . $params['account']))); $privilege = $sql->get(); $money = round($params['sum'] * $cfg['curinrub'], 2); if ($money < $privilege['price']) sys::outjs(array('error' => array('message' => 'bad sum'))); $sql->query('SELECT `user` FROM `servers` WHERE `id`="' . $privilege['server'] . '" LIMIT 1'); if (!$sql->num()) sys::outjs(array('error' => array('message' => 'bad server'))); $server = $sql->get(); $sql->query('SELECT `id`, `balance`, `part_money` FROM `users` WHERE `id`="' . $server['user'] . '" LIMIT 1'); if (!$sql->num()) sys::outjs(array('error' => array('message' => 'bad owner'))); if (isset($_GET['method']) and $_GET['method'] == 'check') sys::outjs(array('result' => array('message' => 'Запрос успешно обработан'))); $user = $sql->get(); 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'); $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 . '"'); $sql->query('UPDATE `privileges_buy` set `status`="1" WHERE `id`="' . $privilege['id'] . '" LIMIT 1'); sys::outjs(array('result' => array('message' => 'Запрос успешно обработан'))); } switch ($_GET['method']) { case 'pay': $sum = round($params['sum'], 2); $user = intval($params['account']); $sql->query('SELECT `id`, `balance`, `part` FROM `users` WHERE `id`="' . $user . '" LIMIT 1'); if (!$sql->num()) sys::outjs(array('result' => array('message' => 'Пользователь c ID: ' . $user . ' не найден'))); $user = $sql->get(); $money = round($user['balance'] + $sum * $cfg['curinrub'], 2); if ($cfg['part']) { $part_sum = round($sum / 100 * $cfg['part_proc'], 2); $sql->query('SELECT `balance`, `part_money` FROM `users` WHERE `id`="' . $user['part'] . '" LIMIT 1'); if ($sql->num()) { $part = $sql->get(); 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'); $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 . '"'); } } $sql->query('UPDATE `users` set `balance`="' . $money . '" WHERE `id`="' . $user['id'] . '" LIMIT 1'); $sql->query('INSERT INTO `logs` set `user`="' . $user['id'] . '", `text`="Пополнение баланса на сумму: ' . $sum . ' ' . $cfg['currency'] . '", `date`="' . $start_point . '", `type`="replenish", `money`="' . $sum . '"'); sys::outjs(array('result' => array('message' => 'Запрос успешно обработан'))); case 'check': $sql->query('SELECT `id` FROM `users` WHERE `id`="' . intval($params['account']) . '" LIMIT 1'); if ($sql->num()) sys::outjs(array('result' => array('message' => 'Запрос успешно обработан'))); sys::outjs(array('jsonrpc' => "2.0", 'error' => array('code' => -32000, 'message' => 'Пользователь не найден'), 'id' => 1)); case 'error': sys::outjs(array('result' => array('message' => 'Запрос успешно обработан'))); } ?>