2024-12-24 18:08:03 +00:00
|
|
|
import logging
|
2024-12-25 01:30:33 +00:00
|
|
|
from typing import Any, Dict
|
|
|
|
from urllib.parse import parse_qs, urlparse
|
2024-12-24 18:08:03 +00:00
|
|
|
|
|
|
|
from aiogram_dialog import DialogManager
|
|
|
|
|
2024-12-25 01:30:33 +00:00
|
|
|
from shopbot.bot.services import create_paylink_cryptobot, create_paylink_lolz
|
2024-12-24 18:08:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
async def getter_amount(dialog_manager: DialogManager, **kwargs) -> Dict[str, Any]:
|
|
|
|
dialog_manager.current_context().dialog_data.pop("pay_data", None)
|
|
|
|
count = dialog_manager.find("count").get_value()
|
|
|
|
try:
|
|
|
|
paylink = await create_paylink_lolz(amount=int(count))
|
|
|
|
parsed_url = urlparse(paylink)
|
|
|
|
query_params = parse_qs(parsed_url.query)
|
|
|
|
amount = query_params.get("amount", [None])[0]
|
|
|
|
comment = query_params.get("comment", [None])[0]
|
|
|
|
pay_data = {"paylink": paylink, "order_id": comment, "amount": amount}
|
|
|
|
dialog_manager.current_context().dialog_data["pay_data"] = pay_data
|
|
|
|
return pay_data
|
|
|
|
except Exception as e:
|
|
|
|
logging.error(f"Error creating Lolz paylink: {e}", exc_info=True)
|
2024-12-25 01:30:33 +00:00
|
|
|
return {
|
|
|
|
"error": "Произошла ошибка при создании ссылки для оплаты Lolz. Пожалуйста, попробуйте позже."
|
|
|
|
}
|
2024-12-24 18:08:03 +00:00
|
|
|
|
|
|
|
|
2024-12-25 01:30:33 +00:00
|
|
|
async def getter_amount_cryptobot(
|
|
|
|
dialog_manager: DialogManager, **kwargs
|
|
|
|
) -> Dict[str, Any]:
|
2024-12-24 18:08:03 +00:00
|
|
|
dialog_manager.current_context().dialog_data.pop("pay_data", None)
|
|
|
|
count = dialog_manager.find("count").get_value()
|
|
|
|
|
|
|
|
if not count:
|
|
|
|
return {"error": "Сумма не указана!"}
|
|
|
|
try:
|
|
|
|
paylink, invoice_id = await create_paylink_cryptobot(amount=int(count))
|
|
|
|
if not paylink:
|
|
|
|
return {"error": invoice_id}
|
|
|
|
pay_data = {"paylink": paylink, "order_id": invoice_id, "amount": count}
|
|
|
|
dialog_manager.current_context().dialog_data["pay_data"] = pay_data
|
|
|
|
return pay_data
|
|
|
|
except Exception as e:
|
|
|
|
logging.error(f"Error creating CryptoBot paylink: {e}", exc_info=True)
|
2024-12-25 01:30:33 +00:00
|
|
|
return {
|
|
|
|
"error": "Произошла ошибка при создании ссылки для оплаты через CryptoBot. Пожалуйста, проверьте настройки и попробуйте снова."
|
|
|
|
}
|