function cleanupJoins($accessToken) { global $authserver; $query = "DELETE FROM `authserver`.`account_server_joins` WHERE `accessToken` = '{$accessToken}' OR `timestamp` < NOW() - INTERVAL 1 DAY;"; $authserver->query($query) or responseWithError("InternalDatabaseError", $authserver->error); if ($authserver->affected_rows > 0) { writeAccountLog(null, "Очищено " . $authserver->affected_rows . " временных учётных записей"); } }
// Чтение входных данных $project = filter_input(INPUT_GET, 'project', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); $nickname = filter_input(INPUT_GET, 'nickname', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); $token = filter_input(INPUT_GET, 'token', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); // Хак, пока на МЦТопе не поправят запрос по тикету... if (strstr($project, "?nickname=") != false) { $exploded = explode("?nickname=", $project); $project = $exploded[0]; $nickname = $exploded[1]; } // Проверка корректности кода проекта if (isset($project) && strlen($project) == 5) { $project = getProjectDetails($project); } else { responseWithError("You cannot vote without project code"); } if (isset($nickname) && isset($token)) { $calcToken = md5($nickname . $project['secret_keyword']); if ($token == $calcToken) { $uuid = findProfileByName($nickname); if ($uuid == false) { responseWithError("Profile not found"); } // Поощрение voteOnTopAccepted($uuid, "mctop.su"); // Запись лога writeAccountLog($uuid, "Пользователь {$nickname} проголосовал на mctop.su и получил {$voteMoneyToAdd} монет."); die("OK"); } } responseWithError("Parameters are incorrect");
if (isset($notification['test_notification']) && $notification['test_notification'] == 'true') { $isTest = true; // die('TEST-OK'); } // Кошелёк может быть переполнен и не принимать переводы if (isset($notification['unaccepted']) && $notification['unaccepted'] == 'true') { die('METHOD TEMPORARY UNAVAILABLE'); } // Не стоит принимать отрицательные переводы :) $money = doubleval($notification['amount']); if ($money <= 0.0) { responseWithError("Parameters are incorrect (3)"); } $log = "Яндекс.Деньги: Принят платёж от " . $notification['sender'] . " в размере {$money} рублей."; // В поле label мы храним uuid пополняемой учётной записи $uuid = null; if (isset($notification['label'])) { $uuid = $notification['label']; if (!isProfileExist($uuid)) { echo 'UUID IS NOT SET!\\n'; } else { if (!$isTest) { // Приём денежных средств на указанный счёт addProfileMoney($uuid, $money, $log); die('OK'); } } } // Записываем приём в лог writeAccountLog(null, $log); die('OK');
function bindProfileThirdParty($uuid, $tp, $tpid) { global $authserver; $query = "INSERT INTO `authserver`.`account_thirdparty` (`uuid`, `thirdparty`, `thirdparty_id`) VALUES ('{$uuid}', '{$tp}', '{$tpid}');"; $authserver->query($query) or responseWithError("InternalDatabaseError"); // Запись в общий лог writeAccountLog($uuid, "К учётной записи " . $uuid . " присоединена проектная " . $tp . ":" . $tpid); }
define('METHUSELAH_INCLUDE_CHECK', true); define('METHUSELAH_INCLUDE_VOTES_CHECK', true); require_once "../toolbox_internal.php"; // Это должно быть где-то в опциональных настройках проекта $topcraft_secret = $methuselah["votes-topcraft-secret"]; // Чтение входных данных $project = filter_input(INPUT_GET, 'project', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); $username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); $timestamp = filter_input(INPUT_POST, 'timestamp', FILTER_VALIDATE_INT); $token = filter_input(INPUT_POST, 'signature', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH); // Проверка корректности кода проекта if (isset($project) && strlen($project) == 5) { $project = getProjectDetails($project); } else { responseWithError("You cannot vote without project code"); } if (isset($username) && isset($timestamp) && isset($token)) { $calcToken = sha1($username . $timestamp . $topcraft_secret); if ($token == $calcToken) { $uuid = findProfileByName($username); if ($uuid == false) { responseWithError("Profile not found"); } // Поощрение voteOnTopAccepted($uuid, "topcraft.ru"); // Запись лога writeAccountLog($uuid, "Пользователь {$username} проголосовал на topcraft.ru и получил {$voteMoneyToAdd} монет."); die("OK"); } } responseWithError("Parameters are incorrect");