4.2 KiB
Внешние API (токен в пути, без сессионной авторизации)
Описание трёх эндпоинтов для внешних систем. Токены задаются через переменные окружения на VPS.
1. GET /api/remotebet/{token}
Регистрация пользователя в текущий раунд комнаты с указанной ставкой (удалённая ставка).
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
| token | string | Секретный токен (должен совпадать с APP_REMOTE_BET_TOKEN) |
Query-параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| user_id | integer | да | Внутренний ID пользователя (db_users_a.id) |
| room | integer | да | Номер комнаты: 1, 2 или 3 |
| amount | integer | да | Ставка в билетах (например, 5 = 5 билетов) |
Ответ 200
| Поле | Тип | Описание |
|---|---|---|
| success | boolean | Успешность операции |
| roundId | integer | ID раунда (или null) |
| room | integer | Номер комнаты |
| betTickets | integer | Размер ставки в билетах |
| error | string | Сообщение об ошибке (при success = false) |
Коды ответа: 200, 400, 403, 503
2. GET /api/check_user/{token}/{telegramId}
Получение информации о пользователе по Telegram ID.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
| token | string | Секретный токен (должен совпадать с APP_CHECK_USER_TOKEN) |
| telegramId | long | Telegram ID пользователя |
Тело запроса: отсутствует
Ответ 200
При успешном вызове всегда возвращается 200. По полю found можно определить, найден ли пользователь.
| Поле | Тип | Описание |
|---|---|---|
| found | boolean | true — пользователь найден, остальные поля заполнены; false — пользователь не найден, остальные поля null |
| dateReg | integer | Дата регистрации (при found=true) |
| tickets | number | Баланс в билетах (balance_a / 1_000_000) (при found=true) |
| depositTotal | integer | Сумма stars_amount по завершённым платежам (Stars) (при found=true) |
| refererId | integer | referer_id_1 из db_users_d (0 если нет) (при found=true) |
| roundsPlayed | integer | Количество сыгранных раундов (при found=true) |
Коды ответа: 200, 403, 500
3. POST /api/deposit_webhook/{token}
Уведомление об успешном пополнении пользователя (криптоплатёж). Создаётся платёж в статусе COMPLETED, начисляются билеты, обновляются баланс и статистика депозитов, создаётся транзакция типа DEPOSIT.
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
| token | string | Секретный токен (должен совпадать с APP_DEPOSIT_WEBHOOK_TOKEN) |
Тело запроса (application/json)
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
| user_id | integer | да | Внутренний ID пользователя (db_users_a.id) |
| usd_amount | number | да | Сумма в USD в виде числа (например, 1.45 или 50) |
Тело ответа: пустое при успехе
Коды ответа: 200, 400, 403, 500