Минимальный VK Long Poll бот для регистрации/входа по телефону, просмотра подписки и выбора абонемента через уже написанное API клиники. Запись на прием, эквайринг и внешняя CRM-интеграция в этом проекте не используются.
- согласие на обработку ПДн с отправкой PDF-файла
Пользовательское соглашение.pdf; - регистрация и повторный вход по номеру телефона;
- автоподстановка имени из VK кнопкой, если VK отдал имя профиля;
- список абонементов через
GET /api/v2/subscriptions/; - просмотр подписки через
GET /api/v2/clients/subscription/{client_id}/; - просмотр остатков услуг через
GET /api/v2/clients/subscription/{client_id}/services/; - заявка на подключение абонемента через
POST /api/v2/clients/subscription/; - fallback в локальную базу бота, если API временно не приняло профиль или заявку;
- SQLite-база для состояний, согласий, контента и audit log;
- веб-админка для акций, правил рекомендаций, магазина бонусов и шаблонов уведомлений.
- Установите зависимости:
.venv\Scripts\python.exe -m pip install -r requirements.txt- Создайте
.envпо примеру.env.example.
На VPS API работает локально, поэтому для сервера используйте:
BOT_API_BASE_URL=http://127.0.0.1:8000/api/v2- Запустите бота через Long Poll:
.venv\Scripts\python.exe main.py --mode longpollLong Poll не требует домена и Callback API.
- Админку можно запустить отдельно:
.venv\Scripts\python.exe main.py --mode adminПо умолчанию она доступна на http://127.0.0.1:8081/. Логин и пароль задаются через ADMIN_LOGIN и ADMIN_PASSWORD.
Бот рассчитан на backend MasterStom Clients v2:
POST /api/v2/clients/- создание клиента. Бот отправляетname,surname,patronymic,age,phone, опциональноemail.GET /api/v2/clients/{client_id}/- получение клиента, зарезервировано для расширений.GET /api/v2/subscriptions/- список доступных абонементов.GET /api/v2/clients/subscription/{client_id}/- данные о подписке клиента.GET /api/v2/clients/subscription/{client_id}/services/- доступные услуги и остатки.POST /api/v2/clients/subscription/- создание подписки клиенту.PUT /api/v2/clients/subscription/{client_id}/- обновление подписки, если у клиента уже есть активная запись.
Онлайн-оплата пока сделана как заглушка: бот создает/обновляет запись подписки в API и сообщает пользователю, что администратор свяжется для оплаты вручную.
В админке можно редактировать:
- акции и скидки;
- описание правил рекомендаций;
- контакты поддержки;
- магазин товаров/услуг за бонусы;
- шаблоны уведомлений;
- заявки на списание бонусов.
Полноценная программа лояльности и автоматическое начисление бонусов намеренно не реализованы.