Изменил 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:
|
try:
|
||||||
async with aiohttp.ClientSession() as session:
|
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(
|
logger.info(
|
||||||
f"Получен ответ от {url}: статус {response.status}"
|
f"Получен ответ от {url}: статус {response.status}"
|
||||||
)
|
)
|
||||||
@@ -250,8 +255,34 @@ async def method_ykassa_handler(callback: CallbackQuery):
|
|||||||
Обработчик оплаты через YooKassa.
|
Обработчик оплаты через YooKassa.
|
||||||
"""
|
"""
|
||||||
amount = callback.data.split("_")[-1]
|
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_url = result.get("confirmation_url", "#")
|
||||||
payment_id = result.get("payment_id", "")
|
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"➡️ <a href='{payment_url}'>Перейти к оплате</a>\n\n"
|
||||||
f"<i>После оплаты нажмите кнопку 'Проверить оплату'</i>",
|
f"<i>После оплаты нажмите кнопку 'Проверить оплату'</i>",
|
||||||
parse_mode="HTML",
|
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()
|
await callback.answer()
|
||||||
@@ -276,7 +315,7 @@ async def method_crypto_handler(callback: CallbackQuery):
|
|||||||
"""
|
"""
|
||||||
amount = callback.data.split("_")[-1]
|
amount = callback.data.split("_")[-1]
|
||||||
data = {"user_id": callback.from_user.id, "amount": amount, "provider": "cryptobot"}
|
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_url = result.get("confirmation_url", "#")
|
||||||
payment_id = result.get("payment_id", "")
|
payment_id = result.get("payment_id", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user