Update paiments fix
All checks were successful
Deploy / deploy (push) Successful in 18s

This commit is contained in:
2026-03-12 10:49:09 +00:00
parent eaf0891905
commit d8db8e2c16

View File

@@ -2,14 +2,13 @@ from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from core.rabbitmq import publish_ticket_paid_event
from database.models import Ticket, TicketStatus
from database.session import get_db
from schemas.payment import PaymentWebhookRequest
from core.rabbitmq import publish_ticket_task # Оставили только правильный импорт
router = APIRouter(prefix="/api/webhooks", tags=["webhooks"])
@router.post("/payment", status_code=status.HTTP_200_OK)
async def payment_webhook(
body: PaymentWebhookRequest,
@@ -24,7 +23,7 @@ async def payment_webhook(
detail=f"Ticket {body.ticket_id} not found",
)
# Idempotency guard: повторный запрос с тем же ключом — возвращаем 200 без действий
# Idempotency guard
if ticket.idempotency_key == body.idempotency_key:
return {"detail": "Already processed"}
@@ -38,6 +37,7 @@ async def payment_webhook(
ticket.idempotency_key = body.idempotency_key
await db.commit()
await publish_ticket_paid_event(ticket_id=ticket.id, user_id=ticket.user_id or 0)
# Вызываем нашу актуальную функцию отправки в очередь
await publish_ticket_task(ticket.id)
return {"detail": "Payment processed"}