Changelog
1.2.0 — 2026-03-17
Pago B2B gestionado por el canal
- Nuevo endpoint
POST .../orders/{orderToken}/confirm-payment: el canal notifica que ha procesado el pago con su pasarela propia. - Ejecuta el mismo proceso de cierre que el webhook de Redsys: orden completada, asientos vendidos, tickets enviados.
- Validación de importe declarado vs. total de la orden.
- Idempotente: llamadas repetidas sobre una orden ya completada devuelven
200sin reejecutar el proceso. - Refactorización interna: lógica de cierre de orden extraída a
OrderCompletionService(compartida conRedsysPaymentController).
1.1.0 — 2026-03-17
API B2B (/sales-channel/v1/)
- Nuevo flujo de autenticación:
POST /auth/tokenintercambiawidget_keypor Bearer token Sanctum. - El token anterior se revoca automáticamente al solicitar uno nuevo.
- Nuevo endpoint público
GET /{slug}/configpara configuración de branding del canal. POST .../orders:order_tokenahora es opcional en el flujo B2B — el backend lo genera automáticamente.- Nuevos endpoints de gestión de items: bulk add, bulk delete, sector (zonas no numeradas), change-rate.
- Payload de eventos simplificado: sin
feesnimanual_promotions. - Payload de sesión saneado: sin venue, fees, timestamps internos.
Backend
- Columna
widget_keyañadida asales_channels(64 chars, nullable, unique). SalesChannelimplementaHasApiTokens(Sanctum) para emitir Bearer tokens.- Middleware
ValidateSalesChannelToken: valida Bearer token y adjunta canal autenticado al request. - Middleware
InjectOrderTokenForB2B: inyectaorder_tokenUUID si el cliente no lo envía. - Rutas de gestión de
widget_keyen admin y promotor:POST/DELETE /{channel}/widget-key. - Eliminado controlador legacy
SalesChannels\PublicSalesChannelController(no estaba en uso).
1.0.0
- Contrato
sessionIdobligatorio para inicialización. - Checkout controlado por host de forma nativa.
- Integración de descuentos (botón + modal + aplicar/eliminar).
- Ajustes de estilo para aislamiento frente a Bootstrap del host.
- Correcciones de expiración del carrito al vaciar y rehidratar.