60 lines
3.7 KiB
Markdown
60 lines
3.7 KiB
Markdown
# QR-код механизм для подачи заявок через Telegram бота
|
||
|
||
## ✅ Что добавлено:
|
||
|
||
### 1. Модальное окно с QR-кодом
|
||
- **Файл**: `smartsoltech/web/templates/web/services_modern.html`
|
||
- **Что добавлено**:
|
||
- Секция QR-кода в модальном окне заявки
|
||
- JavaScript для обработки формы и генерации QR-кода
|
||
- Автоматический сброс формы при закрытии модального окна
|
||
|
||
### 2. Backend функциональность
|
||
- **Существующий механизм**: View `generate_qr_code` в `smartsoltech/web/views.py`
|
||
- **Что работает**:
|
||
- Создание клиента и заявки на услугу
|
||
- Генерация уникального токена для заявки
|
||
- Создание QR-кода с ссылкой на Telegram бота
|
||
- Сохранение QR-кода в папку static/qr_codes/
|
||
|
||
### 3. Telegram бот интеграция
|
||
- **Файл**: `smartsoltech/comunication/telegram_bot.py`
|
||
- **Что работает**:
|
||
- Обработка команды `/start request_{id}_token_{token}`
|
||
- Подтверждение заявки и связывание с chat_id пользователя
|
||
- Создание пользователя Django из данных Telegram
|
||
- Отправка подтверждающего сообщения
|
||
|
||
## 🔄 Workflow (Рабочий процесс):
|
||
|
||
1. **Пользователь** заполняет форму в модальном окне на странице услуг
|
||
2. **JavaScript** отправляет POST запрос на `/service/generate_qr_code/{service_id}/`
|
||
3. **Django** создает:
|
||
- Client (клиента)
|
||
- ServiceRequest (заявку на услугу)
|
||
- QR-код с ссылкой на Telegram бота
|
||
4. **Модальное окно** показывает QR-код и ссылку "Открыть в Telegram"
|
||
5. **Пользователь** сканирует QR-код или переходит по ссылке
|
||
6. **Telegram бот** получает команду `/start` с параметрами заявки
|
||
7. **Бот** подтверждает заявку, связывает с chat_id и отправляет подтверждение
|
||
|
||
## 🧪 Тестирование:
|
||
|
||
Откройте файл `test_qr_functionality.html` в браузере для подробных инструкций по тестированию.
|
||
|
||
Быстрый тест:
|
||
1. Перейдите на http://localhost:8000/services/
|
||
2. Нажмите "Заказать услугу" под любой услугой
|
||
3. Заполните форму и отправьте
|
||
4. Должен появиться QR-код
|
||
5. Перейдите по ссылке в Telegram и нажмите "Start"
|
||
|
||
## 📁 Измененные файлы:
|
||
|
||
1. `smartsoltech/web/templates/web/services_modern.html` - добавлен QR-код в модальное окно
|
||
2. Использован существующий механизм в `smartsoltech/web/views.py` - `generate_qr_code`
|
||
3. Использован существующий Telegram бот в `smartsoltech/comunication/telegram_bot.py`
|
||
|
||
## 🎯 Результат:
|
||
|
||
Теперь пользователи могут подавать заявки на услуги через современное модальное окно, которое генерирует QR-код для подтверждения заявки через Telegram бота. Весь процесс автоматизирован и интегрирован с существующей системой. |