Автодонат для игр с помощью TradeMC

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
hi
Редактор
Регистрация
13 Июн 2022
Сообщения
200

Всем привет! Статья о том, как сделать нормальный рабочий автодонат на абсолютно любую игру​


Нам нужно:
• Аккаунт trademc.org c подтвержденным магазином
• База данных MySQL
• Рабочий сайт сервера

I. Настройки магазина TradeMC​

1765026191857.png

Выбираем "Добавить товар", затем ставим настройки, которые указаны ниже
1765026269682.png
Нажимаем "Сохранить"

II. Настройка сайта​

1. Переходим на TradeMC > Мои магазины, и копируем ключ магазина
1765026443527.png
2. Переходим на наш сайт (у меня это PHP + IspManager)
3. Создаем папку "pay", в ней пять файлов: forma.php, result.php, data.php, suc.php, fail.php
4. Теперь копируем код для каждого файла ниже, и заполняем недостающие данные

Информация о файлах:
• data.php - данные от базы данных
• result.php - сюда будет приходить информация о покупке
• forma.php - это для отправки информации об оплате
• suc.php - при успешной оплате
• fail.php - при неудачной оплате

data.php:
<?php
    $HOST = 'ХОСТ';
    $USERBD = 'ПОЛЬЗОВАТЕЛЬ';
    $PASSBD = 'ПАРОЛЬ';
    $NAMEBD = 'НАЗВАНИЕ ТАБЛИЦЫ';
?>

Нужно заменить:
• ID магазина - ID магазина на TradeMC
• ВАША_ССЫЛКА - Ссылка на ваш сайт

forma.php:
<?php
    $label = $_POST['label'];
    $amount = $_POST['summa'];
    $curl = curl_init("https://api.trademc.org/shop.getItems?shop=ID МАГАЗИНА");
    curl_setopt_array($curl, [
        CURLOPT_HTTPHEADER => ['Authorization: Basic lock', 'Accept: application/json'],
        CURLOPT_RETURNTRANSFER => true
    ]);

    $response1 = curl_exec($curl);
    if (curl_errno($curl) == 0) {
        $data1 = json_decode($response1, true);
    } else {
        $data1 = false;
    }
    curl_close($curl);

    $bId = strval($data1['response']['categories'][0]['items'][0]['id']);

    $curl = curl_init("https://api.trademc.org/shop.buyItems?items={$bId}:1&buyer={$label}&user_fields[{$bId}][amount]={$amount}&v=3");
    curl_setopt_array($curl, [
        CURLOPT_HTTPHEADER => ['Authorization: Basic lock', 'Accept: application/json'],
        CURLOPT_RETURNTRANSFER => true
    ]);

    $response = curl_exec($curl);
    if (curl_errno($curl) == 0) {
        $data = json_decode($response, true);
    } else {
        $data = false;
    }
    curl_close($curl);
    $urls = [
        "https://ВАША_ССЫЛКА/pay/suc.php",
        "https://ВАША_ССЫЛКА/pay/fail.php",
        "https://ВАША_ССЫЛКА/index.html"
    ];

    $payId = strval($data['response']['cart_id']);
    $link = "https://pay.trademc.org?cart_id={$payId}&success_url={$urls[0]}&pending_url={$urls[2]}&fail_url={$urls[1]}";
    header("Location: {$link}");
?>

Нужно заменить:
• $shop_key - токен магазина, копировали ранее
• SQL-запрос поменять на свой
• В $data['buyer'] - хранится никнейм игрока
• В $data['items'][0]['game_currency'] - хранится сумма, которую задонатил игрок

result.php:
<?php
    include 'data.php';
    $shop_key = 'ТОКЕН МАГАЗИНА, КОПИРОВАЛИ РАНЕЕ';

    $data = json_decode(file_get_contents('php://input'));
    $hash = $data->hash;
    unset($data->hash);
 
    if($hash == hash('sha256', json_encode($data) . $shop_key))
    {
        $data = json_decode(file_get_contents('php://input'), true);
        $connection = mysqli_connect($HOST, $USERBD, $PASSBD, $NAMEBD, 3306) or die(mysqli_error($connection));
     
        // ЗДЕСЬ ОБНОВЛЕНИЕ ИНФОРМАЦИИ О РУБЛЯХ, МЕНЯЙТЕ НА СВОЙ ЗАПРОС
        $updAccStmt = $connection->prepare("UPDATE `accounts` SET `pKassaRub` = `pKassaRub` + ? WHERE `Name` = ? ");
        $updAccStmt->bind_param("ds", $data['items'][0]['game_currency'], $data['buyer']);
        $updAccStmt->execute();
        $updAccStmt->close();
    }
 
    die('200');
?>

Заменить в конце "ВАША_ССЫЛКА" - на ваш сайт

suc.php:
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Успешная оплата</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body {
            background-color: #28a745;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            color: white;
            font-family: Arial, sans-serif;
        }
        .container {
            text-align: center;
        }
        h1 {
            animation: fadeIn 2s ease-in-out;
            font-size: 60px;
        }
        p {
            margin-top: 20px;
            font-size: 20px;
        }
        button {
            margin-top: 30px;
            padding: 10px 20px;
            border-radius: 4px;
            background-color: #fff;
            color: #000;
            cursor: pointer;
            transition: all 0.3s;
        }
        button:hover {
            background-color: rgba(255, 255, 255, 0.7);
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(-50px); }
            to { opacity: 1; transform: translateY(0); }
        }
    </style>
</head>
<body>
<div class="container">
    <h1>Оплата успешно прошла</h1>
    <p>Донат был зачислен на ваш аккаунт. Введите команду /donaterub на сервере.</p>
    <button onclick="window.location.href='http://ВАША_ССЫЛКА/index.html'" class="btn btn-primary">Вернуться на сайт</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMzZO0iTrkX4tvpjNzF5eTxghaPyEwOGlT58LwmmnaU3a/xs+fyJHGaLPff" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.min.js" integrity="sha384-mQ93GR66B00ZXjt0YO5KlohRA5SY2XofN4zfuZxLkoj1gXtW8ANNCe9d5Ym+eV2H" crossorigin="anonymous"></script>
</body>
</html>

Заменить в конце "ВАША_ССЫЛКА" - на ваш сайт

fail.php:
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Успешная оплата</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body {
            background-color: #dc3545;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            color: white;
            font-family: Arial, sans-serif;
        }
        .container {
            text-align: center;
        }
        h1 {
            animation: fadeIn 2s ease-in-out;
            font-size: 60px;
        }
        p {
            margin-top: 20px;
            font-size: 20px;
        }
        button {
            margin-top: 30px;
            padding: 10px 20px;
            border-radius: 4px;
            background-color: #fff;
            color: #000;
            cursor: pointer;
            transition: all 0.3s;
        }
        button:hover {
            background-color: rgba(255, 255, 255, 0.7);
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(-50px); }
            to { opacity: 1; transform: translateY(0); }
        }
    </style>
</head>
<body>
<div class="container">
    <h1>Оплата не прошла</h1>
    <p>Что-то пошло не так. Пожалуйста, попробуйте еще раз.</p>
    <button onclick="window.location.href='http://ВАША_ССЫЛКА/index.html'" class="btn btn-primary">Вернуться на сайт</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMzZO0iTrkX4tvpjNzF5eTxghaPyEwOGlT58LwmmnaU3a/xs+fyJHGaLPff" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.min.js" integrity="sha384-mQ93GR66B00ZXjt0YO5KlohRA5SY2XofN4zfuZxLkoj1gXtW8ANNCe9d5Ym+eV2H" crossorigin="anonymous"></script>
</body>
</html>

III. Создание формы на сайте​

Важно:
• Подключить CSS-стили
• Заменить "ВАША_ССЫЛКА" на ссылку на ваш сайт

Код формы:
<form method="POST" action="./pay/forma.php" class="donate-form">
    <input type="hidden" name="successURL" value="https://ВАША_ССЫЛКА/pay/suc.php">

    <div class="input-wrapper">
        <input type="text" class="donate-input input-nickname" placeholder="Ваш никнейм" name="label">
    </div>

    <div class="input-wrapper">
        <input type="number" class="donate-input input-wallet" placeholder="Сумма пополнения" name="summa" min="10" data-type="number">
    </div>

    <button type="submit" name="create" class="donate-button gradient-button">Пополнить</button>
</form>

Всё! Удачи в настройке!​

 
hi
Редактор
Регистрация
13 Июн 2022
Сообщения
200
Статью редактировала нейросеть
Говнокодеры, в атаку!
 
Сверху