import asyncio from pyrogram.types import Message, PreCheckoutQuery from pyrogram.handlers import PreCheckoutQueryHandler, MessageHandler from pyrogram import Client, idle, filters, types async def message_handler(client: Client, message: Message): await client.send_invoice( message.chat.id, title="Donate", description="Support me", currency="XTR", prices=[types.LabeledPrice(label="Star", amount=1)], payload="stars" ) async def pre_checkout_query_handler(_: Client, query: PreCheckoutQuery): await query.answer(ok=True) async def successful_payment_handler(client: Client, message: Message): await message.reply("Thanks for support! But I don't need stars for now! Take it back!") await client.refund_star_payment(message.from_user.id, message.successful_payment.telegram_payment_charge_id) async def main(): app = Client("bot_session", api_id=6, api_hash="eb06d4abfb49dc3eeb1aeb98ae0f581e", in_memory=True, bot_token="") await app.start() print("Started") app.add_handler(MessageHandler(message_handler, filters=filters.command("support"))) app.add_handler(PreCheckoutQueryHandler(pre_checkout_query_handler)) app.add_handler(MessageHandler(successful_payment_handler, filters=filters.successful_payment)) await idle() await app.stop() loop = asyncio.get_event_loop() loop.run_until_complete(main())