R50 8d45658bd62c76ee49d4121753ba1e31
Разработка ботов автоматизация

Telegram-бот для продажи цифровых товаров с интеграцией Google Sheets

Добавлено 05 янв 2025 в 11:29
Описание проекта: Telegram-бот для продажи цифровых товаров с интеграцией Google Sheets и Robokassa Краткое описание Это Telegram-бот, который позволяет продавать цифровые товары (например, коды активации, лицензии, ключи) напрямую через мессенджер. Бот интегрирован с Google Sheets для хранения и выдачи кодов, а также с платёжной системой Robokassa для автоматической обработки платежей. После успешной оплаты бот выдаёт пользователю соответствующее количество кодов.

Функциональность
  1. Интеграция с Google Sheets:
    • Хранение кодов для каждого продукта в определённой строке и нескольких столбцах (A–J или больше).
    • Поиск и выдача нужного количества кодов при покупке.
    • Очистка использованных ячеек, чтобы коды не выдавались повторно.
  2. Интеграция с Robokassa:
    • Генерация платёжной ссылки.
    • Обработка уведомлений (ResultURL) после оплаты.
    • Автоматическая проверка корректности подписи запроса для исключения мошенничества.
  3. Работа с Telegram API (через библиотеку PyTelegramBotAPI / Telebot):
    • Реализация меню:
      • Кнопка «Открыть магазин», ведущая в Web App.
      • Кнопка «Договор оферты» для отправки файла пользователю.
    • Хэндлеры для команд /start и /admin.
    • Отдельные кнопки и сообщения для администратора (рассылка, выгрузка списка пользователей).
  4. Веб-интерфейс (Web App) для корзины:
    • Пользователь может выбрать товары и их количество.
    • Корзина передаёт данные боту через web_app_data.
  5. Обработка заказов и хранение данных:
    • Сохранение заказов в локальных JSON-файлах (вместо полноценной базы данных).
    • Хранение информации о пользователях (ID, username, покупки) и заказах (товары, суммы, статусы).
Технологии, которые использовались
  1. Язык программирования: Python
  2. Telegram Bot API: библиотека pyTelegramBotAPI (telebot)
  3. Google Sheets API: для чтения и обновления данных таблицы
  4. Robokassa: для приёма платежей
  5. Flask: для обработки вебхуков Robokassa (ResultURL)
  6. JSON: для локального хранения данных (пользователи, заказы)
  7. Docker (опционально): можно упаковать приложение для удобного развёртывания
Ключевые задачи, которые решались
  1. Безопасное хранение и выдача уникальных цифровых кодов.
    Нужно было исключить повторную выдачу одного кода нескольким пользователям, а также гарантировать, что код доступен только после успешной оплаты.
  2. Обработка различных статусов оплаты.
    С помощью Robokassa бот получает уведомления об оплате и автоматически выдаёт коды. Проверка подписи защищает от поддельных запросов.
  3. Удобный пользовательский интерфейс в Telegram.
    Полноценный магазин в чат-боте с кнопками, встроенным Web App для выбора товаров и кнопкой «Оплатить».
Особенности реализации
  • Данные кодов хранятся строками: каждая строка в Google Sheets соответствует одному product_id; в ячейках этой строки (столбцы A–J) хранятся коды.
  • Выдача нескольких кодов: если пользователь покупает несколько единиц товара, бот последовательно выдаёт нужное количество доступных кодов, очищая ячейки в таблице.
  • Удобство для пользователя: после успешной оплаты бот отправляет несколько сообщений:
    1. Благодарность за покупку
    2. Название товара
    3. Сам код (или несколько кодов), чтобы их было удобно копировать.
  • Резервное хранение данных: информация о заказах и пользователях хранится в JSON-файлах, которые загружаются и сохраняются при каждом событии (например, создании заказа или обновлении покупок).
Роль в проекте
  • Разработка архитектуры и логики взаимодействия с Google Sheets (автоматическая выдача и очистка ячеек).
  • Интеграция с платежной системой Robokassa (генерация ссылки, проверка подписи, обработка уведомлений).
  • Реализация бэкенда на Flask для приёма ResultURL.
  • Настройка бота с помощью библиотеки telebot, включая разные хэндлеры (обработчики команд и текстовых сообщений), меню, кнопки, вложенный Web App.
  • Тестирование на случайных входных данных, отладка ошибок и обработка некорректных сценариев (нехватка кодов, неверная подпись платежа и т. д.).
Результаты и преимущества
  • Упрощённая модель электронной торговли: нет необходимости в сложной системе и хостинге для хранения кодов; Google Sheets достаточно, чтобы администрировать и пополнять коды.
  • Автоматизация выдачи кодов: сводит к минимуму человеческий фактор при продаже цифровых товаров.
  • Лёгкая интеграция и масштабирование: при необходимости можно перенести бота в Docker-контейнер и развернуть на любом сервере или хостинге.
  • Безопасность: проверка подписи Robokassa и автоматическое обнуление кодов в Google Sheets после выдачи гарантируют отсутствие двойной выдачи.
Возможные направления развития
  • Поддержка других платёжных систем (Stripe, PayPal и др.), если нужно расширить список платёжных методов.
  • Поддержка реферальной программы или промокодов, чтобы привлекать больше покупателей.
  • Отправка чеков или автоматическая интеграция с сервисами для фискализации (в некоторых странах обязательна).
  • Связь с базой данных (например, PostgreSQL, MySQL), чтобы иметь более надёжное и масштабируемое решение вместо хранения данных в JSON-файлах.

Таким образом, проект демонстрирует навыки интеграции чат-бота с внешними сервисами (Google Sheets и платёжная система), умение работать с Telegram Bot API, а также навыки написания веб-сервера на Flask. Это решение упрощает процесс продажи цифровых продуктов и может легко масштабироваться для более крупных или сложных магазинов.

E60bc238a8