39 lines
1.4 KiB
Python
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()) |