Подключаем оплату Telegram Stars в AIOgram 3.18 🚀



Шаг 1: Установка AIOgram



Установите AIOgram с помощью pip:



 install aiogram




Шаг 2: Создание и настройка бота



Создайте бота в Telegram через BotFather и получите токен. Затем создайте файл bot.py и импортируйте необходимые модули:



 logging

from aiogram import Bot, Dispatcher, types

from aiogram.types import LabeledPrice, PreCheckoutQuery

from aiogram.utils import executor



API_TOKEN = 'YOUR_BOT_API_TOKEN'

PAYMENT_PROVIDER_TOKEN = 'YOUR_PAYMENT_PROVIDER_TOKEN'



logging.basicConfig(level=logging.INFO)

bot = Bot(token=API_TOKEN)

dp = Dispatcher(bot)




Шаг 3: Настройка команд и обработка оплаты



Добавьте команды для старта и оплаты:



async def send_welcome(message: types.Message):

await message.reply("Привет! Нажми /buy чтобы купить Telegram Stars!")



@dp.message_handler(commands=['buy'])

async def buy(message: types.Message):

prices = [LabeledPrice(label='Telegram Stars', amount=50000)] # 50000 = 500 руб.

await bot.send_invoice(

message.chat.id,

title='Покупка Telegram Stars',

description='Получите доступ к эксклюзивным функциям!',

provider_token=PAYMENT_PROVIDER_TOKEN,

currency='RUB',

prices=prices,

start_parameter='telegram-stars',

payload='telegram-stars-payload'

)



@dp.pre_checkout_query_handler(lambda query: True)

async def pre_checkout_query(pre_checkout_q: PreCheckoutQuery):

await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True)



@dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT)

async def successful_payment(message: types.Message):

await message.reply("Оплата прошла успешно! Спасибо за покупку!")




Шаг 4: Запуск бота



Запустите бота:



 __name__ == '__main__':

executor.start_polling(dp, skip_updates=True)




### Полный код



 logging

from aiogram import Bot, Dispatcher, types

from aiogram.types import LabeledPrice, PreCheckoutQuery

from aiogram.utils import executor



API_TOKEN = 'YOUR_BOT_API_TOKEN'

PAYMENT_PROVIDER_TOKEN = 'YOUR_PAYMENT_PROVIDER_TOKEN'



logging.basicConfig(level=logging.INFO)

bot = Bot(token=API_TOKEN)

dp = Dispatcher(bot)



@dp.message_handler(commands=['start'])

async def send_welcome(message: types.Message):

await message.reply("Привет! Нажми /buy чтобы купить Telegram Stars!")



@dp.message_handler(commands=['buy'])

async def buy(message: types.Message):

prices = [LabeledPrice(label='Telegram Stars', amount=50000)] # 50000 = 500 руб.

await bot.send_invoice(

message.chat.id,

title='Покупка Telegram Stars',

description='Получите доступ к эксклюзивным функциям!',

provider_token=PAYMENT_PROVIDER_TOKEN,

currency='RUB',

prices=prices,

start_parameter='telegram-stars',

payload='telegram-stars-payload'

)



@dp.pre_checkout_query_handler(lambda query: True)

async def pre_checkout_query(pre_checkout_q: PreCheckoutQuery):

await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True)



@dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT)

async def successful_payment(message: types.Message):

await message.reply("Оплата прошла успешно! Спасибо за покупку!")



if __name__ == '__main__':

executor.start_polling(dp, skip_updates=True)




Теперь ваш бот готов к приему платежей за Telegram Stars! Удачи в разработке! 💻🚀