diff --git a/handlers/profile.py b/handlers/profile.py index 3c9145e..94632c2 100644 --- a/handlers/profile.py +++ b/handlers/profile.py @@ -310,25 +310,50 @@ async def method_crypto_handler(callback: CallbackQuery): Заглушка: оплата через CryptoBot. """ amount = callback.data.split("_")[-1] - data = {"user_id": callback.from_user.id, "amount": amount, "provider": "cryptobot"} - result = await call_api("POST", "billing/payments/init", data,"http://billing:8000/") + endpoint = f"/billing/payments/init?user_id={callback.from_user.id}&amount={float(amount)}&provider=cryptobot" + + logger.info(f"Отправка запроса на инициализацию платежа: {endpoint}") + + # Отправляем POST запрос с пустым телом (параметры в URL) + result = await call_api("POST", endpoint, None, "http://billing:8000") + + if result == "ERROR": + await callback.message.edit_text( + "❌ Произошла ошибка при создании платежа. Попробуйте позже." + ) + await callback.answer() + return + + # Проверяем успешность операции + if not result.get("success", False): + error_msg = result.get("error", "Неизвестная ошибка") + await callback.message.edit_text( + f"❌ Ошибка: {error_msg}" + ) + await callback.answer() + return payment_url = result.get("confirmation_url", "#") payment_id = result.get("payment_id", "") - + await callback.message.edit_text( - f"💵 🪙 Оплата через CryptoBot\n\n" + f"💵 Оплата через Сryptobot\n\n" f"💰 Сумма: {amount} руб\n" f"📋 ID платежа: {payment_id}\n\n" f"➡️ Перейти к оплате\n\n" f"После оплаты нажмите кнопку 'Проверить оплату'", parse_mode="HTML", - disable_web_page_preview=True - ) - await callback.message.edit_text( - f" {amount} ₽ пока в разработке.\n\n" - "Платёжный шлюз будет добавлен позже.", + disable_web_page_preview=True, + reply_markup=types.InlineKeyboardMarkup( + inline_keyboard=[[ + types.InlineKeyboardButton( + text="🔄 Проверить оплату", + callback_data=f"check_payment:{payment_id}" + )] + ] + ) ) + await callback.answer()