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 . " временных учётных записей");
    }
}
Example #2
0
// Чтение входных данных
$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");
Example #3
0
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");