fix(subscription): process zero-day one-star payment
This commit is contained in:
1 parent
0dc54a26b9
commit
dc2ec6344b
6 files changed
+47
-31
No files matched your search
@@ -494,22 +494,7 @@ async def subscribe_command(message: Message, state: FSMContext) -> None:
|
||||
|
||||
async def _send_zero_star_invoice(message: Message, user_id: int) -> None:
|
||||
"""Sends a one-Star test invoice; never grants access."""
|
||||
try:
|
||||
await message.bot.send_invoice(
|
||||
chat_id=message.chat.id,
|
||||
title="Тестовый счёт на 1 ⭐",
|
||||
description="Проверка поддержки минимального платежа Telegram Stars",
|
||||
payload=f"sub:0:{datetime.datetime.now(datetime.timezone.utc):%Y%m%d%H%M%S}",
|
||||
currency="XTR",
|
||||
prices=[LabeledPrice(label="Тест", amount=1)],
|
||||
provider_token="",
|
||||
message_thread_id=message.message_thread_id,
|
||||
)
|
||||
except Exception as exc:
|
||||
logger.info("Zero-Star invoice rejected by Telegram (%s)", type(exc).__name__)
|
||||
await message.answer("Telegram отклонил тестовый счёт на 1 ⭐.")
|
||||
return
|
||||
await message.answer("Telegram принял тестовый счёт на 1 ⭐. Доступ он не выдаёт.")
|
||||
await _send_subscription_invoice(message, user_id, days=0)
|
||||
|
||||
|
||||
async def _send_subscription_invoice(message: Message, user_id: int, days: int = 30) -> None:
|
||||
@@ -554,9 +539,6 @@ async def subscription_plan(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
await callback.answer("Такой тариф недоступен.", show_alert=True)
|
||||
return
|
||||
await callback.answer()
|
||||
if days == 0:
|
||||
await _send_zero_star_invoice(callback.message, callback.from_user.id)
|
||||
return
|
||||
try:
|
||||
await callback.message.delete()
|
||||
except Exception as exc:
|
||||
|
||||
Reference in new issue
Block a user