Writing

JDonate 2 | Laravel 11 | Vue3

10/02/2025

10 mins to read

Share article

preview

JDonate 2 — автодонат магазин под Steam авторизацию. Имеет на борту мультисерверность, API для работы с корзиной, админ панель.

Требования к серверу

Для запуска JDonate 2 на вашем сервере рекомендуется использовать VPS с минимальной конфигурацией: 2 ГБ оперативной памяти и операционную систему Linux. Для защиты от DDoS-атак мы советуем использовать Cloudflare, что поможет обеспечить стабильную работу сайта даже при атаках.

Система промокодов

Позволяет создавать промокоды, типы - на бонусный баланс, и на бонус при пополнение. Промокоды имеют свойство накапливаться.

Плагин

Плагин поставляется отдельно, 5.000рублей. Хотите написать свой? Нет проблем! Ниже описано API позволяющее это сделать, а также конфиг штатного плагина.

"Настройки API": {
  "Основная ссылка": "https://domain.ru/",
  "API ключ": "your_api_key",
  "ID сервера": "your_server_ID",
},
"Настройки плагина": {
  "Запретить получать товар в зоне чужого шкафа?": true,
  "Включить отображение подключяемых игроков в Терак сервере?": true
}

API для работы с корзиной

Одной из особенностей JDonate 2 является поддержка API для работы с корзиной. Взаимодействие с корзиной происходит через REST API, с конечной точкой:

POST /api/cart
{
  "server_id": server_id,
  "steamid": your_steam_id
}

Ответ:

{
    "id": 16,
    "user_id": "76561198996849773",
    "server_id": "1",
    "items": [
        {
            "type": "item",
            "id": 11,
            "itemid": -1321651331,
            "name": "Explosive 5.56 Rifle Ammo",
            "image": "https://jdonate.jaehaerys.dev/images/items/ammo.rifle.explosive.png",
            "amount": 64,
            "shop_cart_id": "72ce6a89-e68b-4d2b-9172-ec21dba60e91"
        },
        {
            "type": "blueprint",
            "id": 246,
            "itemid": -1878475007,
            "name": "Satchel Charge",
            "image": "https://jdonate.jaehaerys.dev/images/items/explosive.satchel.png",
            "amount": 1,
            "shop_cart_id": "b4eab3bf-97ca-4c61-b644-758f78374516"
        },
        {
            "type": "custom",
            "name": "13",
            "image": "13",
            "amount": 1,
            "command": "grant.group 76561198996849773 test 13d ",
            "shop_cart_id": "9ead63a5-7cd7-4805-a8c5-88dc83e3df92"
        }
    ],
    "created_at": "2025-02-20T09:56:43.000000Z",
    "updated_at": "2025-02-20T09:56:43.000000Z"
}

Удалить предмет:

DELETE /api/cart
{
  "steamid": steamid,
  "server_id": server_id,
  "shop_cart_id": your_cart_id
}

Изменить баланс

POST /api/user/balance
{
  "steamid": steamid,
  "balance": balance,
  "type": subtract/add
}

Безопасность API

Для обеспечения безопасности запросов все взаимодействия с API должны сопровождаться использованием уникального ключа API, который передается в заголовках запросов. В заголовках должен быть обязательно указан параметр X-API-KEY.

X-API-KEY: your-api-key-here
© 2025 All rights reserved.