Files
bot/README.md
T

5.7 KiB

BotShop v0.2.0

BotShop — локальная платформа для запуска нескольких Telegram-магазинов из одной панели управления.

Проект рассчитан на легальную продажу цифровых и физических товаров: файлы, доступы, инструкции, мерч, услуги, коды, подписки, инфопродукты. В проекте нет механики тайников, скрытых адресов, обхода платёжных правил или автоподтверждения платежей по словам пользователя.

Что заложено

  • подключение нескольких Telegram-ботов через токен;
  • локальный режим без домена через Telegram polling;
  • webhook-режим для сервера с HTTPS-доменом;
  • главная бота: приветствие, выбор города, баланс, рефералка, последний заказ, поддержка;
  • последовательность заказа: город → продукт → район/зона → тип/вариант → итог → оплата/отмена;
  • оплата с баланса магазина;
  • карта/СБП/банк с уникальной суммой для ручной идентификации;
  • Bitcoin-реквизиты с подтверждением оператором;
  • баланс пользователя через ledger: рефералы, пополнения, возвраты, списания;
  • автовыдача товара после статуса paid;
  • управление городами, районами, товарами, вариантами, остатками, заказами, платежами;
  • базовые логи Telegram-событий и действий администратора;
  • автоустановщик install.sh.

Важная логика платежей

Пользовательское нажатие Я оплатил не делает заказ оплаченным. Оно переводит платёж в проверку оператором. Автовыдача выполняется только после статуса paid.

Для полностью автоматической оплаты нужен официальный платёжный API банка/эквайринга/крипто-провайдера. Уникальная сумма без API — это полуавтоматический режим с ручной проверкой.

Статусы заказа

  • draft — черновик;
  • waiting_payment — ожидает оплату;
  • payment_review — пользователь заявил оплату, оператор проверяет;
  • paid — оплата подтверждена;
  • delivered — товар выдан;
  • cancelled — отменён;
  • refunded — возвращён;
  • expired — истёк срок оплаты;
  • rejected — оплата отклонена.

Требования

  • Ubuntu/Debian сервер или локальная VM;
  • PHP 8.1+;
  • MySQL 5.7+/8+ или MariaDB;
  • Nginx;
  • доступ в интернет для Telegram Bot API.

Локальная установка без домена

sudo apt update
sudo apt install -y git curl
cd /root
git clone https://github.com/viktor138irk/bot.git botshop-installer
cd botshop-installer
sudo bash install.sh --local

После установки скрипт покажет:

Админка: http://IP-СЕРВЕРА/login
Email: admin@local.test
Пароль: сгенерированный пароль

В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис:

systemctl status botshop-polling --no-pager
journalctl -u botshop-polling -f

Установка с собственными данными

sudo bash install.sh --local \
  --admin-email admin@example.local \
  --admin-pass 'СЛОЖНЫЙ_ПАРОЛЬ' \
  --db-pass 'СЛОЖНЫЙ_ПАРОЛЬ_БД'

После установки

  1. Откройте админку: http://IP-СЕРВЕРА/login.
  2. Войдите под админом.
  3. Создайте Telegram-бота через @BotFather.
  4. В панели откройте «Боты».
  5. Добавьте токен.
  6. Поставьте статус active.
  7. В локальном режиме webhook не нужен.
  8. Добавьте город, район, товар, вариант, остатки и реквизиты.
  9. Напишите /start своему Telegram-боту.

Структура

install.sh             # автоустановщик
public/index.php       # веб-панель и webhook endpoint
scripts/polling.php    # локальный Telegram polling worker
database/schema.sql    # схема базы
storage/config.php     # создаётся installer'ом, не хранится в git
storage/logs/          # логи

Ближайший roadmap

  • v0.2.1 — экран баланса, рефералки и последнего заказа в Telegram;
  • v0.2.2 — админ-раздел остатков и автовыдачи;
  • v0.2.3 — подтверждение платежа оператором с автоматической выдачей;
  • v0.2.4 — поддержка в панели;
  • v0.3.0 — аккуратный UI, роли операторов и журнал аудита.

Версия

0.2.0