diff --git a/main.py b/main.py index 42f664b..4de0c29 100644 --- a/main.py +++ b/main.py @@ -522,6 +522,30 @@ async def successful_payment_handler(message: Message, db: OracleDatabase = None plain_report = report.replace("**", "").replace("*", "") await message.answer(plain_report, reply_markup=builder.as_markup()) logging.info("Plain text message sent successfully!") + + # Проверяем, является ли пользователь администратором и возвращаем звезды + if message.from_user.id == ADMIN_USER_ID: + try: + await message.bot.refund_star_payment( + user_id=message.from_user.id, + telegram_payment_charge_id=message.successful_payment.telegram_payment_charge_id + ) + await message.answer( + "🔧 **Admin Refund**\n\n" + f"💰 Payment automatically refunded for admin user.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}\n" + "ℹ️ Admin access - no charges applied.", + parse_mode="Markdown" + ) + logging.info(f"Admin refund successful for user {message.from_user.id}") + except Exception as refund_error: + logging.error(f"Failed to refund admin payment: {refund_error}") + await message.answer( + "⚠️ **Admin Refund Failed**\n\n" + "Could not automatically refund admin payment. Please contact technical support.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}", + parse_mode="Markdown" + ) else: # No detailed information found - refund the payment try: @@ -689,6 +713,30 @@ async def successful_payment_handler(message: Message, db: OracleDatabase = None logging.info("Sending photo information message...") await message.answer(photo_message, parse_mode="Markdown") logging.info("Photo message sent successfully!") + + # Проверяем, является ли пользователь администратором и возвращаем звезды + if message.from_user.id == ADMIN_USER_ID: + try: + await message.bot.refund_star_payment( + user_id=message.from_user.id, + telegram_payment_charge_id=message.successful_payment.telegram_payment_charge_id + ) + await message.answer( + "🔧 **Admin Refund**\n\n" + f"💰 Payment automatically refunded for admin user.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}\n" + "ℹ️ Admin access - no charges applied.", + parse_mode="Markdown" + ) + logging.info(f"Admin refund successful for user {message.from_user.id}") + except Exception as refund_error: + logging.error(f"Failed to refund admin payment: {refund_error}") + await message.answer( + "⚠️ **Admin Refund Failed**\n\n" + "Could not automatically refund admin payment. Please contact technical support.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}", + parse_mode="Markdown" + ) else: # Нет записей - возвращаем деньги try: @@ -737,6 +785,30 @@ async def successful_payment_handler(message: Message, db: OracleDatabase = None f"✅ Payment successful! Thank you for your purchase.\n" f"Transaction ID: {message.successful_payment.telegram_payment_charge_id}" ) + + # Проверяем, является ли пользователь администратором и возвращаем звезды + if message.from_user.id == ADMIN_USER_ID: + try: + await message.bot.refund_star_payment( + user_id=message.from_user.id, + telegram_payment_charge_id=message.successful_payment.telegram_payment_charge_id + ) + await message.answer( + "🔧 **Admin Refund**\n\n" + f"💰 Payment automatically refunded for admin user.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}\n" + "ℹ️ Admin access - no charges applied.", + parse_mode="Markdown" + ) + logging.info(f"Admin refund successful for user {message.from_user.id}") + except Exception as refund_error: + logging.error(f"Failed to refund admin payment: {refund_error}") + await message.answer( + "⚠️ **Admin Refund Failed**\n\n" + "Could not automatically refund admin payment. Please contact technical support.\n" + f"🆔 Transaction ID: {escape_markdown(message.successful_payment.telegram_payment_charge_id)}", + parse_mode="Markdown" + ) async def on_startup():