Интеграция платежной системы в Telegram-бота на Python включает настройку платежей, создание инвойсов и обработку успешных платежей.
Настройка платежной системы
Зарегистрируйтесь в выбранной платежной системе (например, Stripe). Создайте проект или компанию в личном кабинете для получения публичного ключа. В Telegram Bot Father, в разделе настроек платежей (payments), добавьте платежную систему, нажав кнопку Connect. Выберите тестовый или рабочий режим и следуйте инструкциям (например, авторизация через браузер). Bot Father предоставит токен для дальнейшей работы.
Настройка конфигурационного файла
Создайте файл config.py для хранения токенов бота и платежной системы:
# config.py
BOT_TOKEN = "YOUR_BOT_TOKEN" # Замените на ваш токен бота
PAYMENT_TOKEN = "YOUR_PAYMENT_TOKEN" # Замените на токен платежной системы
Импортируйте его в основной скрипт:
import config
Используйте config.BOT_TOKEN и config.PAYMENT_TOKEN в коде.
Создание и отправка инвойса
Функция send_invoice отправляет инвойс. В примере инвойс отправляется при команде /start:
import asyncio
from aiogram import Bot, Dispatcher, types
# ... (импорт других необходимых модулей) ...
async def start(message: types.Message):
await message.bot.send_invoice(
chat_id=message.chat.id,
title="Покупка курса",
description="Покупка курса IT-Proger",
payload="purchase_course",
provider_token=config.PAYMENT_TOKEN,
currency="USD",
prices=[types.LabeledPrice(label="Покупка курса", amount=500)], # 5$ * 100
)
# ... (остальной код бота) ...
Обработка успешного платежа
Обработчик событий successful_payment обрабатывает успешные платежи:
@dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT)
async def successful_payment(message: types.Message):
await message.answer(f"Успешная оплата!\n{message.successful_payment.order_info}")
Он предоставляет информацию о платеже (валюта, провайдер, сумма, order_info) для обновления базы данных, предоставления доступа или других действий.
Статья описывает простую интеграцию платежной системы в Telegram-бота на Python. Используйте любой поддерживаемый Telegram Bot API платежный шлюз, получив необходимые ключи. Расширяйте функциональность, обрабатывая события и используя полученные данные для улучшения пользовательского опыта.