Перейти к содержимому

Как сделать оплату в телеграмме боту python

  • автор:

Реализация оплаты в телеграмм боте

Необходимо реализовать оплату в телеграмм боте, что для этого необходимо и какая платёжная система или сервис приёма платежей подойдёт без открытия ООО/ИП.

Отслеживать
задан 15 июл 2021 в 14:54
27 1 1 серебряный знак 7 7 бронзовых знаков

Я не осведомлён в этой теме, поэтому, если кто-то может просветить, будьте добры или подкиньте материалы для чтения

15 июл 2021 в 14:58

необходимо почитать статью 171 УК РФ. Осуществление предпринимательской деятельности без регистрации или без лицензии либо без аккредитации в национальной системе аккредитации наказывается штрафом в размере до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до двух лет, либо обязательными работами на срок до четырехсот восьмидесяти часов, либо арестом на срок до шести месяцев.

15 июл 2021 в 15:27
@Интик Вообще-то существует такое понятие как «самозанятый».
15 июл 2021 в 16:56

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

15 июл 2021 в 17:58
Телеграм-бот Donate позволяет принимать оплату во многих валютах, в том числе и в крипте
8 сен 2022 в 20:42

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Платёжные боты существуют в Telegram с 2017 года. С их помощью можно безопасно оплачивать товары и услуги вроде доставки пиццы, не покидая приложения.

Для оплаты можно использовать любое приложение – в том числе Telegram для компьютеров. Покупатель также может оставить чаевые, чтобы поддержать любимого автора, кафе или магазин.

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

Испытать возможности на бесплатных тестовых товарах и услугах можно в этом канале.

На данный момент Telegram поддерживает платежи из более чем 200 стран через следующие платежные системы:

  • Stripe
  • YooMoney (ЮSelf — бесплатный сервис для самозанятых)
  • Sberbank
  • Tranzzo
  • Payme
  • CLICK
  • LiqPay
  • ECOMMPAY
  • PayMaster

Для подключения оплаты:

  1. у @BotFather выберите своего бота
  2. Перейдите в раздел Payments
  3. Выберите платёжного провайдера
  4. Для разработки и отладки выберите Connect *** TEST
  5. Для «боевой» среды выберите Connetct *** LIVE
  • Описание пошагового процесса оплаты
  • Описание API
  • Пример реализации с помощью pyTelegramBotAPI
  • Пример реализации с помощью Telethon

Как подключить платежную систему с Payments к Telegram

Рассказываем, как подключить платежную систему к Telegram-боту и разместить его на сервере.

Введение

Telegram-боты обладают широкой функциональностью и решают массу задач клиентов самых разных бизнесов. Рассказываем, как создать и разместить бота для приема платежей в Telegram на Python. Видеоверсия доступна по ссылке.

В Telegram есть встроенная система оплаты, поэтому сценариев, как использовать бота для приема платежей, достаточно много. Это может быть разовая оплата заказа или ежемесячная подписка.

Платежные системы Telegram

Сейчас мессенджер поддерживает оплату в более чем 200 странах через такие шлюзы, как: Stripe, YooMoney, Sberbank, LiqPay, PayMaster и другие.

Все начинается с установки библиотеки aiogram. Сейчас, пожалуй, это самая популярная библиотека для разработки ботов на Python.

python -m pip install aiogram

Переходим в Telegram и пишем тут BotFather’у команду /newbot. Вводим имя нового бота. Важно, чтобы оно заканчивалось словом Bot.

Получаем уникальный токен нового бота. Теперь напишем код простейшего эхо-бота, чтобы проверить его работу.

Связать бота с приложением

Создаем файл config.py и вписываем в него токен, который выдал BotFather. В основном файле main.py прописываем базовый код любого бота.

Обратите внимание на один важный момент: бот должен обрабатывать каждое сообщение с серверов Telegram. Для этого при запуске бота обязательно нужно поставить аргумент skip_updates в значение False. Это спасет от проблем при обработке платежей.

import config import logging from aiogram import Bot, Dispatcher, executor, types from aiogram.types.message import ContentType # log logging.basicConfig(level=logging.INFO) # init bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # echo bot @dp.message_handler() async def echo(message; types.Message): await message.answer (message.text) # run long-polling if __name__ == "main": executor.start_polling(dp, skip_updates=False)

Теперь можно запустить код и проверить, работает ли бот. Убедившись, что все хорошо, приступаем к подключению платежей.

Возвращаемся к BotFather’у, даем команду /mybots и выбираем из списка своего бота.

В открывшемся меню кликаем на кнопку «Payments». Из предоставленного списка выбираем нужный платежный шлюз. В качестве теста используем PayMaster. Чтобы подключить оплату в Telegram-бота, сначала нужно выполнить тест, поэтому выбираем «PayMaster Test».

Следуем простым инструкциям бота платежной системы и получаем тестовый токен PayMaster. Его сразу же можно сохранить в config.py.

TOKEN = "5432877141:AAHEwBEb2mwnZX56oaHM10o33ZBZwVkvv-s" PAYMENTS_TOKEN = "1744374395:TEST:f14d9f0d42528b780370"

Возвращаемся к коду бота. Для того, чтобы запросить оплату товаров/услуг, нужно сгенерировать invoice с деталями платежа. Отправить его клиенту и обработать результат.

Подключаем оплату

Указываем список доступных цен на продукты. В качестве цены нужно передать целочисленное значение в минимально возможных единицах валюты. Если речь идет о рублях, то стоимость нужно указывать в копейках. То есть место 500 рублей мы тут укажем 500 * 100 или же 50 000 копеек. В случае с долларами будет почти также, $1=100 центов. Если предполагается работа с другими валютами, можно использовать currencies.json от Telegram API.

Дальше в коде бота платежной системы мы создаем обработчик команды /buy. Команда будет генерировать и отправлять пользователю invoice платежа. В примере используется оплата месячной подписки.

import config import logging from aiogram import Bot, Dispatcher, executor, types from aiogram.types.message import ContentType # log logging.basicConfig(level=logging.INFO) # init bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # prices PRICE = types.LabeledPrice(label="Подписка на 1 месяц", amount=500*100) # в копейках (руб) # buy @dp.message_handler(commands=['buy']) async def buy(message: types.Message): if config.PAYMENTS_TOKEN.split(':')[1] == 'TEST': await bot.send_message(message.chat.id, "Тестовый платеж. ") await bot.send_invoice(message.chat.id, title="Подписка на бота", description="Активация подписки на бота на 1 месяц", provider_token=config.PAYMENTS_TOKEN, currency="rub", photo_url="https://www.aroged.com/wp-content/uploads/2022/06/Telegram-has-a-premium-subscription.jpg", photo_width=416, photo_height=234, photo_size=416, is_flexible=False, prices=[PRICE], start_parameter="one-month-subscription", payload="test-invoice-payload")

Сам процесс генерации invoice довольно простой. Не стоит беспокоиться большому количеству аргументов. Это названия продуктов или услуг, описания, цена, валюта и т.п.

Настройки платежей

Обратите внимание на аргумент is_flexible. Его нужно указывать в значение True только в том случае, если финальная стоимость зависит от выбранного способа доставки, если речь идет о продаже какого-то физического продукта.

О других параметрах метода send_invoice вы всегда можете прочитать в официальной документации Telegram API.

Теперь нужно создать еще два обработчика: Pre Checkout Query и Successful Payment.

Pre Checkout Query отвечает за обработку и утверждение платежа перед тем, как пользователь его совершит. Так можно проверить доступность товара на складе или уточнить стоимость.

Важно, что серверам Telegram ответ нужен в течение 10 секунд. Если его не будет, платеж не пройдет.

Successful Payment отвечает за обработку успешно проведенного платежа.

# pre checkout (must be answered in 10 seconds) @dp.pre_checkout_query_handler(lambda query: True) async def pre_checkout_query(pre_checkout_q: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True) # successful payment @dp.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT) async def successful_payment(message: types.Message): print("SUCCESSFUL PAYMENT:") payment_info = message.successful_payment.to_python() for k, v in payment_info.items(): print(f" = ") await bot.send_message(message.chat.id, f"Платеж на сумму  прошел успешно. ") # run long-polling if __name__ == "__main__": executor.start_polling(dp, skip_updates=False)

Тут можно выдать пользователю тот самый месяц подписки, за которую он заплатил или любую другую услугу.

Как бот работает на практике

Получив invoice на оплату от бота, нажимаем «Оплатить». Поскольку сначала мы проводим тестирование бота, воспользуемся специальной тестовой картой.

Вводим данные и оплачиваем подписку — все работает. При переходе на боевой проект важно не забыть выбрать правильный счет.

Теперь возвращаемся в BotFather, чтобы получить реальный токен от выбранного платежного шлюза. Если есть запрос на разные тарифы или способы оплаты, лучше запросить сразу 2-3 токена от разных платежных шлюзов. Далее нужно будет генерировать invoice с помощью токена выбранного провайдера.

Перенос бота на боевой сервер

Чтобы бот работал 24/7 вне зависимости от того, включен компьютер или нет, зальем его на реальный сервер.

Для этого воспользуемся облачным сервером линейки Shared Line от Selectel. Калькулятор панели управления позволяет выбрать гибкую конфигурацию сервера и сразу узнать, сколько будет стоить решение. Все продукты и услуги собраны у провайдера в одном месте, поэтому ими легко управлять. Арендовать сервер можно от 10 ₽/день, а в консоли есть возможность быстро масштабировать вычислительные ресурсы при необходимости.

Регистрируемся и входим в панель управления my.selectel.ru. Переходим в раздел «Облачная платформа» и выбираем «Серверы». Создаем сервер — после этого шага он загорится в списке как «ACTIVE».

Настраиваем конфигурацию. Для примера используем 1 ядро, 512 МБ DDR4 и 5 ГБ на диске.

Теперь переходим к выгрузке бота на боевой сервер. Сначала нужно подключиться к серверу через SSH. Для этого мы можем воспользоваться программой WinSCP для Windows. В Linux и MAC для этого есть свои встроенные инструменты.

Запускаем WinSCP. В качестве имени хоста указываем IP адрес нашего нового сервера. Логин и пароль можно взять во вкладке «Консоль» в панели управления.

Теперь перенесем сюда файлы нашего бота: config.py и main.py. Далее открываем отдельное соединение с сервером по SSH в консоли.

Для этого в WinSCP нажать кнопку и открыть PuTTY. Можно также воспользоваться командной строкой, принципиальной разницы нет.

Настройка бота с Payments 2.0

Подключившись к серверу, нужно выполнить ряд простых действий.

  • Обновить Python до версии 3.10.
  • Установить PIP.
  • Поставить библиотеку Aiogram.

Если оставить все в таком виде, то при закрытии SSH-соединения вместе с ним закроется и процесс бота. Что делать?

Есть несколько способов, как решить этот вопрос. Рассмотрим самый простой – использование команды screen.

Пишем команду screen и жмем Enter. Запускаем бота из обычного терминала и закрываем соединение.

Бот продолжит работу. Чтобы в любой момент вернуться к этому экрану, достаточно ввести команду screen -r $screen_running. На этом деплой в облаке Selectel закончен.

Заключение

Описанная схема запуска Telegram-бота не предел того, как можно настроить прием платежей. К боту всегда можно добавить дополнительные возможности: запрашивать адрес доставки или менять цену в зависимости от адреса.

Идеальное решение для pet-проектов

Сервер для решения задач, которые не требуют полной загрузки vCPU.

Зарегистрируйтесь в панели управления

И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.

Читайте также:

Инструкция

Как автоматизировать подготовку к собеседованиям с помощью Telegram-бота

29 сентября 2023

Инструкция

Как реализовать очередь в Redis

14 сентября 2023

Инструкция

Как генерировать истории с помощью ChatGPT и Telegram

Как подключить и настроить оплату через Telegram-бота

Binpartner в шапке

Как подключить и настроить оплату через Telegram-бота

Сегодня оплата через Телеграм-бота — это возможность не просто поднять объёмы продаж, а выйти на новую целевую аудиторию, так как в 2023 году число пользователей мессенджера достигло 700 млн. человек. Покупателю удобнее сделать покупку и оплату прямо в чате, поэтому прием платежей в Телеграм-боте позволяет монетизировать подписчиков групп и пабликов, почти не выходя из TG. Это укорачивает путь клиента к покупке, следовательно, повышает конверсию.

Easy Cards — это 5 лет надежности и крутых бинов. Получай 10 БЕСПЛАТНЫХ КАРТ и комиссию всего 3%. С нами, ты получишь ПОПОЛНЕНИЕ В КРИПТЕ МГНОВЕННО и никаких скрытых долларовых комиссий. Используй CARD-SERVICE для оплаты рекламы на Google, TikTok и Facebook. Полный SETUP для суперэффективной рекламы и высококачественные бины для твоей успешной работы! Присоединяйся к Easy Cards и увеличь свой успех!

Содержание скрыть

Как создать бота в Телеграм для приема оплаты?

Перед тем, как создать бота, необходимо получить токен управления им. Делается это в bofather через команды /start и /newbot. Как сделать бота для оплаты в Telegram: настройка приема платежей Как подключить и настроить оплату через Telegram-ботаПолучив токен, вы можете приступить к разработке бота на конструкторе или через программирование.

Конструкторы ботов для приема платежей в Телеграм

В Телеграм много конструкторов и сервисов по созданию ботов. Но лишь в немногие из них интегрированы платежные системы. Botmother. Популярный инструмент, через который создают ботов не только в ТГ, но и в других мессенджерах и социальных сетях. Botmother работает с платёжками PayOnline, Robokassa, bePaid, VKPay, ЮKassa и платежи в Telegram. Есть бесплатный тариф для работы с максимум 10 ботами и есть платные тарифы от 2900 до 11000 рублей в месяц. Sambot. Это конструктор широкого назначения, с помощью которого создают боты модерации, опросники, игровые, справочные и магазины в Телеграм. В него интегрированы платёжки QIWI, ЮMoney, Robokassa, ЮKassa, Prodamus, ТинькоффБанк. Тарифы от 500 рублей в месяц до 12600 рублей в год. BotKits. Предназначен для коммерческих ботов — магазины в ТГ, выбор и покупка еды с доставкой, подбор депозита/кредита и другие средства взаимодействия с клиентами. Принимает оплату через ЮMoney, QIWI, терминалы оплаты и с международных банковских карт. Тарифы от 2000 до 7700 рублей в месяц. BotTap. С его помощью создают ботов не только в TG, но и в Viber, Facebook и VK. Интегрирован с платёжками QIWI, ЮMoney, ЮКасса, YClients и Енот. Тарифы от 100 до 1200 рублей в месяц. PuzzleBot. Конструктор для создания ботов автоматических ответов, модерации, магазинов, автопостинга и для других типовых задач. К нему подключают платёжки ЮMoney, QIWI, Енот, а также Cryptobot и Minter для платежей в криптовалюте. Юрлицам доступны также ЮКасса, Robokassa, Cloudpayments, Prodamus и ещё пара десятков платёжек. Есть бесплатный тариф и платные от 550 до 1600 рублей в месяц. B4S — Bot4shop. Это конструктор для создания ботов-магазинов. Заточен под витрины продаж в Телеграм. К нему подключаются платёжки Tranzzo, LiqPay, Portmone, Cascad, Paymega, LeoGaming, Stripe, а также Apple и Google Pay. Тарифы 25$ в месяц или 120$ в год.

Пример кода на Python для приема оплаты в Телеграм-боте

Чтобы написать бота на Питоне, понадобится установить Python на своё устройство и создать два файла: main.py и config.py. Дальше устанавливаем aiogram для разработки ботов на Питоне через менеджер пакетов PIP: python -m pip install aiogram. Далее в файл main.py вписываем базовый код любого бота и вставляем полученный токен. По токену Botfather свяжет ваш программный код с ботом в Teleram. Пример базового кода. from aiogram import Bot, Dispatcher, executor, types API_TOKEN = вставляем сюда токен из Botfather bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) @dp.message_handler(commands=[‘start’]) async def send_welcome(message: types.Message): await message.reply(«Привет!\nЯ Эхо-бот\nОтправь мне любое сообщение, а я тебе обязательно отвечу.») @dp.message_handler() async def echo(message: types.Message): await message.answer(message.text) if __name__ == ‘__main__’: executor.start_polling(dp, skip_updates=True) Для приёма платежей в файл config.py вставляем этот код. import config import logging from aiogram import Bot, Dispatcher, executor, types from aiogram.types.message import ContentType # log logging.basicConfig(level=logging.INFO) # init bot = Bot(token=config.TOKEN) dp = Dispatcher(bot) # echo bot @dp.message_handler() async def echo(message; types.Message): await message.answer (message.text) # run long-polling if __name__ == «main»: executor.start_polling(dp, skip_updates=False) После создания файлов main.py и config.py к боту можно подключать оплату.

Как подключить оплату в Телеграм-бота

Независимо от того, работаете ли вы на конструкторе или в Питоне, вы отправляете в Botfather команду /mybots, чтобы перейти к управлению ботами.

Как подключить оплату в самописном боте?

Этот способ подходит для ботов, которые вы написали самостоятельно или создали на конструкторах без API платёжных систем. После команды /mybots выбираем бот и жмём на кнопку Payments (платежи), а затем выбираем систему оплаты. Как подключить и настроить оплату через Telegram-бота Как подключить и настроить оплату через Telegram-ботаВ нашем случае выберем платёжку Paymaster и чтобы её подключить, жмём на “Connect Paymaster Live”. В результате нас перебрасывает на PayMaster Bot. Как подключить и настроить оплату через Telegram-бота Как подключить и настроить оплату через Telegram-ботаЗапускаем бот и указываем идентификатор своего сайта в системе Paymaster. Как подключить и настроить оплату через Telegram-бота Как подключить и настроить оплату через Telegram-ботаВ результате в BotFather получаем “боевой” платёжный токен, который и будем использовать в своих ботах для привязки платёжной системы PayMaster. Кроме этой платёжки в BotFather есть множество других платежных систем: Robokassa, ECOMMPAY, Click.uz, Stripe, Liqpay и другие. Главное, чтобы у вас был аккаунт в этих системах, привязанный сайт и карта, кошелёк, либо счёт, куда вы будете выводить деньги. Привязка их к своему BotFather происходит аналогичным образом. Статья по теме: Полезные боты для СММ.

Как подключить оплату в конструкторе?

  • Создаём аккаунт на платформе и авторизуемся через её бот;
  • Получаем токен в BotFather и отправляем его в Puzzlebot.

Теперь бот привязан к конструктору и им можно управлять. В конструкторе переходим в меню “Настройки”, а затем “Платёжные системы”.

Как подключить и настроить оплату через Telegram-бота

Далее нужно создать магазин с товарами и услугами. Например, добавим несколько товаров в Puzzlebot.

Как подключить и настроить оплату через Telegram-бота

Затем настраиваем цены и сценарии оплаты.

Как подключить и настроить оплату через Telegram-бота

Теперь можно запустить бот и попробовать купить один из товаров.

Как подключить и настроить оплату через Telegram-бота Как подключить и настроить оплату через Telegram-бота

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

FAQ

Какие платежные системы работают в Телеграме?

В мессенджере Дурова предусмотрены Global Pay, Paycom, Click.Uz, Freedom Pay, Stripe, ЮKassa, Сбербанк, Tranzzo, LiqPay, ECOMMPAY, PayMaster, Cascad, Paymega, Portmone, ПСБ, LeoGaming, Bank 131, Unlimint, iPay88, Robokassa, Paykassma, PayBox.money, bill_line, Redsys, Chapa. В основном они предназначены для оплаты с международных и национальных банковских карт в долларах, евро и местных валютах.

Что такое Telegram Payments?

Это платёжные системы, которые встроены в GodFather и которые можно подключить к боту для приёма платежей онлайн через Телеграм. Они принимают оплату онлайн через Mastercard, Visa, Maestro, Unionpay, МИР, а также местные карты.

Можно ли принимать платежи в Телеграм без ИП?

Все платёжные системы Телеграм — ЮKassa, Robokassa, Click.Uz и другие требуют заключить договор и оформить юридическое лицо для приёма платежей. Даже если подключать платёжные сервисы внутри конструкторов, ИП всё равно требуется, так как платформа у вас потребует подключить ваш собственный аккаунт в платёжной системе. Однако в Интернете нетрудно найти сервисы, которые продают рабочие аккаунты этих систем. Покупая такой акк, вы вяжете к нему свою карту и подключаете к телеграм-боту. Другой вариант приёма платежей без ИП — сервисы донатов, наподобие Donate, Tools, Remiling, Asay, Paidsub и множества других. Правда, они позволяют принимать платежи только за цифровые товары.

Как подключить кнопку доната в Телеграме?

Это делается через донаторские сервисы. Официальный сервис донатов в Telegram — Donate. Но кроме него есть Paywal, Admaker, Toolsy, Nemiling, Cashwave и множество других. Инструкции по настройке есть в каждом сервисе. Все они не только позволяют принимать донаты, но и предоставлять платный доступ к файлам, страницами цифровым товарам.

Можно ли подключить Сбербанк к Телеграм-боту?

Да, потому что он есть в списке официальных платёжных систем Telegram и интегрирован в BotFather. Для его подключения нужно открыть аккаунт в онлайн-банкинге Сбербанк, а также оформить юридическое лицо для приёма платежей.

Создание Telegram-бота для приема платежей на подписку: Telegram Payments, QIWI API и Bitcoin

В этой статье мы рассмотрим, как создать Telegram бота для приема платежей и интегрировать различные платежные системы в ваш Telegram-бот на Python, включая Telegram Payments, QIWI API и Bitcoin. Мы покажем вам шаг за шагом процесс интеграции платежных систем с помощью нашего подробного руководства, и вы сможете быстро и просто интегрировать платежные системы в 2023 году.

Telegram Payments

Telegram Payments – это встроенная система платежей для ботов, которая позволяет пользователям совершать покупки прямо из чата.

Для работы с Telegram Payments, вам нужно зарегистрироваться у одного из платежных провайдеров, поддерживаемых Telegram, таких как Stripe или Yandex.Money. После регистрации вы получите токен API, который будет использоваться для обработки платежей.

В библиотеке python-telegram-bot есть класс telegram.Invoice для создания счетов, которые могут быть отправлены пользователю. Вот пример отправки счета с помощью этой библиотеки:

from telegram import LabeledPrice, Invoice price = LabeledPrice("Test product", 100) # 1.00 USD bot.send_invoice(chat_id, "Test product", "Description", "payload", PROVIDER_TOKEN, "start_parameter", "USD", [price]) 

Для обработки платежей вам нужно обрабатывать обновления с типом telegram.PreCheckoutQuery и вызывать метод answer_pre_checkout_query для подтверждения платежа.

QIWI API

QIWI API – это система платежей, которая позволяет проводить транзакции через сервис QIWI. Для работы с QIWI API вам потребуется создать QIWI-кошелек и получить API-токен.

Для взаимодействия с QIWI API вы можете использовать библиотеку qiwi-api-wrapper . Вот пример создания платежной ссылки с помощью этой библиотеки:

from qiwi_api import QiwiWrapper qiwi = QiwiWrapper(token="your_token", phone="your_phone_number") invoice_url = qiwi.create_payment_link(amount=100.0, comment="Payment for test product") 

После получения ссылки на оплату, вы можете отправить ее пользователю в виде кнопки или текстового сообщения.

Работа с Bitcoin

Для работы с Bitcoin-платежами вам потребуется создать кошелек Bitcoin и получить его адрес. Затем вы можете использовать библиотеку bitcoin-python для работы с Bitcoin API.

Вот пример создания Bitcoin-адреса и проверки его баланса с помощью этой библиотеки:

from bitcoin import SelectParams, RPCProxy SelectParams("mainnet") # выбор сети Bitcoin rpc = RPCProxy("http://user:[email protected]:8332") # подключение к Bitcoin-ноде address = rpc.getnewaddress() # создание нового Bitcoin-адреса balance = rpc.getbalance(address) # получение баланса адреса 

Вы можете отправить пользователю адрес Bitcoin, на который им следует отправить средства. Для отслеживания платежей, вы должны мониторить баланс этого адреса, используя Bitcoin-ноду или сторонние сервисы.

Пример Telegram бот для платежей за платную подписку

В этом разделе мы создадим Telegram-бота, который будет предлагать пользователю оплатить подписку на премиум-функции. Пользователь сможет оплатить подписку с помощью Telegram Payments, QIWI API или Bitcoin. После успешной оплаты пользователь будет отмечен как «премиум» в базе данных SQLite.

  1. Создайте новый файл Python и импортируйте необходимые модули.
  2. Инициализируйте бота с вашим токеном бота и токеном платежного провайдера для Telegram Payments.
  3. Создайте базу данных SQLite и таблицу для хранения информации о пользователях и их статусе «премиум».
  4. Реализуйте обработчики для команды /subscribe , которые будут отправлять инструкции для оплаты через Telegram Payments, QIWI API и Bitcoin.
  5. Реализуйте функции проверки успешной оплаты для каждого способа оплаты.
  6. После успешной оплаты, обновите статус пользователя на «премиум» в базе данных SQLite.

Для создания такого бота, сначала установите необходимые библиотеки:

pip install aiogram python-telegram-bot qiwipy bitcoin 

Теперь давайте создадим бота с использованием следующего кода:

import logging import sqlite3 from datetime import datetime, timedelta from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.types import LabeledPrice from aiogram.utils import executor API_TOKEN = 'your_bot_token_here' # Инициализация бота и диспетчера bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) # Подключение к базе данных SQLite и создание таблицы пользователей conn = sqlite3.connect("subscription_bot.db") cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL UNIQUE, premium BOOLEAN NOT NULL DEFAULT FALSE, premium_until TIMESTAMP ); """) conn.commit() # Обработчик команды /start @dp.message_handler(commands=['start']) async def on_start(message: types.Message): user_id = message.from_user.id cursor.execute("INSERT OR IGNORE INTO users (user_id) VALUES (?)", (user_id,)) conn.commit() await message.reply("Привет! Отправь мне /subscribe, чтобы оплатить премиум-подписку!") # Обработчик команды /subscribe @dp.message_handler(commands=['subscribe']) async def on_subscribe(message: types.Message): user_id = message.from_user.id # Создание счета на оплату prices = [LabeledPrice(label='Премиум-подписка', amount=1000)] await bot.send_invoice( chat_id=user_id, title='Премиум-подписка', description='Оплата премиум-подписки на 1 месяц', provider_token='your_telegram_payments_provider_token', currency='usd', prices=prices, start_parameter='subscription', payload=str(user_id) ) # Обработчик успешной оплаты @dp.pre_checkout_query_handler(lambda query: True) async def process_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True) @dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT) async def on_successful_payment(message: types.Message): user_id = message.from_user.id # Обработка успешной оплаты successful_payment_handler(user_id) await message.reply("Оплата успешно проведена! Вы получили премиум-подписку на 1 месяц.") # Функция обработки успешной оплаты def successful_payment_handler(user_id): now = datetime.now() premium_until = now + timedelta(days=30) cursor.execute("UPDATE users SET premium = 1, premium_until = ? WHERE user_id = ?", (premium_until, user_id)) conn.commit() # Функция проверки премиум-статуса пользователя def is_user_premium(user_id): cursor.execute("SELECT premium, premium_until FROM users WHERE user_id = ?", (user_id,)) user_data = cursor.fetchone() if user_data: premium, premium_until = user_data if premium: now = datetime.now() if now < datetime.strptime(premium_until, "%Y-%m-%d %H:%M:%S.%f"): return True cursor.execute("UPDATE users SET premium = 0 WHERE user_id = ?", (user_id,)) conn.commit() return False Запуск бота if name == 'main': from aiogram import executor executor.start_polling(dp, skip_updates=True) 

Не забудьте заменить API_TOKEN , QIWI_TOKEN , BITCOIN_ADDRESS и PROVIDER TOKEN HERE на соответствующие значения для вашего бота и платежных систем.

Этот код создает бота, который предлагает оплатить подписку черую через Telegram Payments, QIWI и Bitcoin. После успешной оплаты через любой из этих способов, пользователь будет отмечен как «премиум» в базе данных SQLite.

Обратите внимание, что для работы с Telegram Payments вам нужно получить токен платежного провайдера. Информацию о том, как это сделать, можно найти в документации Telegram.

Сейчас код проверяет только успешные платежи через Telegram Payments. Если вы хотите проверять платежи через QIWI и Bitcoin, вам потребуется реализовать проверку транзакций для каждого из этих способов оплаты. Вы можете создать вебхук для QIWI или периодически опрашивать их API, чтобы проверять состояние транзакций. Для проверки Bitcoin-транзакций вам потребуется интеграция с сервисами обработки платежей, такими как BTCPay Server или Coinbase Commerce.

После успешной оплаты, вы можете использовать информацию о «премиум» пользователе в вашем боте для предоставления дополнительных возможностей или контента.

Заключение

В этой статье мы рассмотрели, как интегрировать различные платежные системы в ваш Telegram бот для платежей на Python, включая Telegram Payments, QIWI API и Bitcoin. Это позволит вашему боту обрабатывать платежи от пользователей и расширить его функциональность. Вы можете выбрать подходящую платежную систему в зависимости от требований вашего проекта и предпочтений пользователей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar