Нужно было создать бота, в котором любой пользователь может за пару кликов купить виртуальный номер телефона для регистрации в Telegram, WhatsApp и других сервисах.
Главная цель — сделать так, чтобы всё работало на автомате. Пользователь платит деньги, выбирает страну и сервис, получает номер, а бот сам сидит и ждет СМС. Если код не пришел — бот должен сам вернуть деньги на баланс, чтобы админу не пришлось делать это вручную.
Как я это сделал (Решение)
Для этого проекта я выбрал Python и современную библиотеку Aiogram 3. Это позволило сделать бота очень быстрым и отзывчивым.
Что реализовал внутри:
1. Связка с API: Я подключил бота к сервису 365sms. Бот сам запрашивает актуальный список стран, цены и наличие свободных номеров.
2. Фоновые воркеры: Это главная техническая «фишка». Когда юзер покупает номер, бот запускает отдельный процесс (воркер), который «слушает» API в течение 20 минут. Как только код приходит, он мгновенно пересылает его пользователю.
3. Авто-возвраты: Если за 20 минут СМС так и не пришло, бот сам отменяет заказ и возвращает деньги на внутренний счет. Никакого ручного контроля от админа не требуется.
4. Платежи: Прикрутил оплату через Telegram Stars и CryptoBot. Все транзакции и история заказов пишутся в базу данных PostgreSQL.
5. Админка: Сделал меню для админа, где можно посмотреть общую статистику (сколько купили, сколько заработано) и сделать рассылку по всем юзерам.
Бот получился стабильным и полностью автономным. Юзерам удобно, потому что код приходит быстро, а интерфейс понятный.
Что в итоге:
• Всё на автомате: Покупка, ожидание кода и возвраты работают без участия человека.
• Надежность: Благодаря базе данных и правильной обработке ошибок, заказы не «теряются», даже если API сервиса подлагивает.
• Легкий запуск: Я упаковал бота в Docker, так что его можно развернуть на любом сервере одной командой.
Админу остается только следить за балансом на самом сервисе СМС и смотреть на растущую статистику в боте.