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
+172
View File
@@ -7,9 +7,11 @@ from tgbot.database import Paymentsx
from tgbot.keyboards.inline_admin import (
close_finl,
payment_cryptobot_finl,
payment_lolzteam_finl,
payment_stars_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 ded, is_number, to_number
from tgbot.utils.misc.bot_models import FSM, ARS
@@ -30,6 +32,19 @@ async def payments_cryptobot_open(
)
# Управление - Lolzteam
@router.message(F.text == "🟢 Lolzteam")
async def payments_cryptobot_open(
message: Message, bot: Bot, state: FSM, arSession: ARS
):
await state.clear()
await message.answer(
"<b>🟢 Управление - Lolzteam</b>",
reply_markup=await payment_lolzteam_finl(),
)
# Управление - Звёзды
@router.message(F.text == "⭐️ Звёзды")
async def payments_stars_open(message: Message, bot: Bot, state: FSM, arSession: ARS):
@@ -161,6 +176,163 @@ async def payments_cryptobot_get(
)
################################################################################
################################### LOLZTEAM ##################################
# Баланс - Lolzteam
@router.callback_query(F.data == "payment_lolzteam_balance")
async def payments_lolzteam_balance(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
response = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=call,
skipping_error=True,
)
).balance()
await call.message.answer(
response,
reply_markup=close_finl(),
)
# Информация - Lolzteam
@router.callback_query(F.data == "payment_lolzteam_check")
async def payment_lolzteam_check(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
status, response = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=call,
skipping_error=True,
)
).check()
await call.message.answer(
response,
reply_markup=close_finl(),
)
# Изменение - Lolzteam
@router.callback_query(F.data == "payment_lolzteam_edit")
async def payment_lolzteam_edit(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
await state.set_state("here_lolzteam_token")
await call.message.edit_text(
ded(f"""
<b>🟢 Изменение Lolzteam - <a href='https://lolz.live/account/api'>API</a></b>
➖➖➖➖➖➖➖➖➖➖
▪️ Создайте Приложение в "Lolzteam", сгенерируйте токен (basic, invoice, market) и отправьте
"""),
disable_web_page_preview=True,
)
# Выключатель - Lolzteam
@router.callback_query(F.data.startswith("payment_lolzteam_status:"))
async def payment_lolzteam_status(
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS
):
get_status = call.data.split(":")[1]
get_payments = await Paymentsx().get()
if get_status == "True" and get_payments.lolzteam_token == "None":
return await call.answer(
"❌ Токен данной платежной системы не был добавлен", True
)
await Paymentsx().update(status_lolzteam=get_status)
await call.message.edit_text(
"<b>🟢 Управление - Lolzteam</b>",
reply_markup=await payment_lolzteam_finl(),
)
############################## ПРИНЯТИЕ LOLZTEAM ##############################
# Принятие токена Lolzteam
@router.message(StateFilter("here_lolzteam_token"))
async def payments_lolzteam_get(message: Message, bot: Bot, state: FSM, arSession: ARS):
get_token = message.text
cache_message = await message.answer(
"<b>🟢 Проверка введённых Lolzteam данных... 🔄</b>"
)
status, response = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=message,
skipping_error=True,
token=get_token,
)
).check()
if status:
await Paymentsx().update(lolzteam_token=get_token)
await state.set_state("here_lolzteam_merchant_id")
await cache_message.edit_text(
ded(f"""
<b>🟢 Изменение Lolzteam - <a href='https://lzt.market/merchants'>Мерчанты</a></b>
➖➖➖➖➖➖➖➖➖➖
▪️ Создайте мерчант в "Lolzteam Market" и отправьте его ID
"""),
disable_web_page_preview=True,
)
else:
await cache_message.edit_text(
"<b>🟢 Не удалось изменить Lolzteam кошелёк ❌</b>"
)
# Принятие айди мерчанта Lolzteam
@router.message(StateFilter("here_lolzteam_merchant_id"))
async def payments_lolzteam_merchant_id_get(
message: Message, bot: Bot, state: FSM, arSession: ARS
):
get_payments = await Paymentsx().get()
get_token = get_payments.lolzteam_token
get_merchant_id = message.text
await state.clear()
cache_message = await message.answer(
"<b>🟢 Проверка введённых Lolzteam данных... 🔄</b>"
)
status, response = await (
await LolzteamAPI.connect(
bot=bot,
arSession=arSession,
update=message,
skipping_error=True,
token=get_token,
merchant_id=get_merchant_id,
)
).check()
if status:
await Paymentsx().update(lolzteam_merchant_id=get_merchant_id)
await cache_message.edit_text("<b>🟢 Lolzteam был успешно изменён ✅</b>")
else:
await cache_message.edit_text("<b>🟢 Не удалось изменить Lolzteam ❌</b>")
await message.answer(
"<b>🟢 Управление - Lolzteam</b>",
reply_markup=await payment_lolzteam_finl(),
)
################################################################################
#################################### ЗВЁЗДЫ ####################################
# Баланс - Звёзды