StarPaymentTest/main.py
2024-07-29 15:17:08 +00:00

39 lines
1.4 KiB
Python

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())