Изменил call_api добавив тип данных и преобразую во float amount
This commit is contained in:
@@ -33,7 +33,12 @@ async def call_api(method, endpoint, data=None,base_url = BASE_URL_FASTAPI):
|
||||
|
||||
try:
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.request(method, url, json=data) as response:
|
||||
async with session.request(
|
||||
method,
|
||||
url,
|
||||
json=data,
|
||||
headers={"Content-Type": "application/json"}
|
||||
) as response:
|
||||
logger.info(
|
||||
f"Получен ответ от {url}: статус {response.status}"
|
||||
)
|
||||
@@ -250,8 +255,34 @@ async def method_ykassa_handler(callback: CallbackQuery):
|
||||
Обработчик оплаты через YooKassa.
|
||||
"""
|
||||
amount = callback.data.split("_")[-1]
|
||||
data = {"user_id": callback.from_user.id, "amount": amount, "provider": "yookassa"}
|
||||
result = await call_api("POST", "billing/payments/init", data,"http://billing:8000")
|
||||
|
||||
# Формируем данные для отправки
|
||||
data = {
|
||||
"user_id": callback.from_user.id,
|
||||
"amount": float(amount), # Преобразуем в float
|
||||
"provider": "yookassa"
|
||||
}
|
||||
|
||||
logger.info(f"Отправка запроса на инициализацию платежа: {data}")
|
||||
|
||||
# Отправляем POST запрос с JSON телом
|
||||
result = await call_api("POST", "/billing/payments/init", data, "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", "")
|
||||
@@ -263,7 +294,15 @@ async def method_ykassa_handler(callback: CallbackQuery):
|
||||
f"➡️ <a href='{payment_url}'>Перейти к оплате</a>\n\n"
|
||||
f"<i>После оплаты нажмите кнопку 'Проверить оплату'</i>",
|
||||
parse_mode="HTML",
|
||||
disable_web_page_preview=True
|
||||
disable_web_page_preview=True,
|
||||
reply_markup=types.InlineKeyboardMarkup(
|
||||
inline_keyboard=[[
|
||||
types.InlineKeyboardButton(
|
||||
text="🔄 Проверить оплату",
|
||||
callback_data=f"check_payment:{payment_id}"
|
||||
)]
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
await callback.answer()
|
||||
@@ -276,7 +315,7 @@ async def method_crypto_handler(callback: CallbackQuery):
|
||||
"""
|
||||
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")
|
||||
result = await call_api("POST", "billing/payments/init", data,"http://billing:8000/")
|
||||
|
||||
payment_url = result.get("confirmation_url", "#")
|
||||
payment_id = result.get("payment_id", "")
|
||||
|
||||
Reference in New Issue
Block a user