feat: add Lolzteam payment integration

This commit is contained in:
2026-07-16 04:40:02 +05:00
parent cb56f6757e
commit 573dae70fb
13 changed files with 735 additions and 70 deletions
+71
View File
@@ -8,6 +8,7 @@ from aiogram.types import CallbackQuery, Message, PreCheckoutQuery
from tgbot.database import Paymentsx, Refillx, Userx, Settingsx
from tgbot.keyboards.inline_user import refill_bill_finl, refill_method_finl
from tgbot.services.api_cryptobot import CryptobotAPI
from tgbot.services.api_lolzteam import LolzteamAPI
from tgbot.services.api_stars import StarsAPI
from tgbot.utils.const_functions import is_number, to_number, gen_id, ded
from tgbot.utils.misc.bot_logging import bot_logger
@@ -26,6 +27,7 @@ async def refill_method_list(call: CallbackQuery, bot: Bot, state: FSM, arSessio
if (
get_payments.status_cryptobot == "False"
and get_payments.status_lolzteam == "False"
and get_payments.status_stars == "False"
):
return await call.answer("❗️ Пополнения временно недоступны", True)
@@ -49,6 +51,10 @@ async def refill_method_select(
return await call.answer(
"❌ Пополнение данным способом временно недоступно", True
)
elif refill_method == "Lolzteam" and get_payments.status_lolzteam == "False":
return await call.answer(
"❌ Пополнение данным способом временно недоступно", True
)
elif refill_method == "Stars" and get_payments.status_stars == "False":
return await call.answer(
"❌ Пополнение данным способом временно недоступно", True
@@ -98,6 +104,15 @@ async def refill_amount_get(message: Message, bot: Bot, state: FSM, arSession: A
)
).bill(refill_amount)
elif refill_method == "Lolzteam":
bill_message, bill_link, bill_receipt = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=cache_message,
)
).bill(refill_amount)
elif refill_method == "Stars":
bill_message, bill_link, bill_receipt = await (
await StarsAPI.connect(
@@ -106,6 +121,7 @@ async def refill_amount_get(message: Message, bot: Bot, state: FSM, arSession: A
update=cache_message,
)
).bill(refill_amount)
else:
return await cache_message.edit_text(
f"<b>❌ Данный способ пополнения не найден. Попробуйте позже: {refill_method}</b>"
@@ -180,6 +196,59 @@ async def refill_check_cryptobot(
)
# Проверка оплаты - Lolzteam
@router.callback_query(F.data.startswith("Pay:Lolzteam"))
async def refill_check_lolzteam(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
pay_method = call.data.split(":")[1]
pay_comment = call.data.split(":")[2]
pay_status, pay_amount = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=call,
)
).bill_check(pay_comment)
if pay_status == 0:
refill_status = await refill_success(
bot=bot,
call=call,
pay_method=pay_method,
pay_amount=pay_amount,
pay_comment=pay_comment,
)
if refill_status == "ALREADY":
await call.answer("❗ Ваше пополнение уже зачислено.", True, cache_time=60)
await delete_refill_message(
bot, call.message.chat.id, call.message.message_id
)
elif refill_status == "USER_NOT_FOUND":
await call.answer(
"❗ Пользователь не найден. Напишите в поддержку.", True, cache_time=30
)
elif pay_status == 1:
await call.answer(
"❗️ Не удалось проверить платёж. Попробуйте позже", True, cache_time=30
)
elif pay_status == 2:
await call.answer(
"❗️ Оплата не была найдена. Попробуйте позже", True, cache_time=5
)
elif pay_status == 3:
await call.answer("❗️ Вы не успели оплатить счёт", True, cache_time=5)
await call.message.edit_reply_markup()
else:
await call.answer(
f"❗ Неизвестная ошибка {pay_status}. Обратитесь в поддержку.",
True,
cache_time=5,
)
# Проверка оплаты - Звёзды
@router.callback_query(F.data.startswith("Pay:Stars"))
async def refill_check_stars(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS):
@@ -357,6 +426,8 @@ async def save_refill_success(
) -> Tuple[str, int]:
if pay_method == "Cryptobot":
text_method = "CryptoBot"
elif pay_method == "Lolzteam":
text_method = "Lolzteam"
elif pay_method == "Stars":
text_method = "Telegram Stars"
else: