💳 Sistema de Pagos Multi-Proveedor

Ejemplos de integración con Stripe, Redsys y PayPal en Laravel

💳

Stripe

Pago moderno con API. El usuario completa el pago sin salir de tu página.

Flujo: API REST + JavaScript

Probar Stripe →
🏦

Redsys

Pago tradicional con redirección al TPV del banco. Soporta Tarjeta y Bizum.

Flujo: Redirección + Callback

Probar Redsys →
💰

PayPal

Pago con PayPal. Redirección a PayPal y retorno automático.

Flujo: SDK Oficial

Probar PayPal →
↩️

Reembolsos

Aprende cómo hacer devoluciones con Stripe, Redsys y PayPal.

Soporte: Todos los proveedores

Ver Reembolsos →
📊

Comparativa

Compara las diferencias entre Stripe, Redsys y PayPal.

Info: Flujos, ventajas y desventajas

Ver Comparativa →
🎯

Sistema de Eventos

Acciones automáticas post-pago: guardar en BD, enviar emails, actualizar inventario.

Ventaja: Código común para todos los proveedores

Ver Documentación →

🏗️ Arquitectura

📦 DTOs

  • ✓ PaymentRequest
  • ✓ PaymentResponse
  • ✓ PaymentResult

⚙️ Services

  • ✓ PaymentGateway (interface)
  • ✓ PaymentManager (factory)
  • ✓ StripePaymentService
  • ✓ RedsysPaymentService
  • ✓ PayPalPaymentService

🏷️ Enums

  • ✓ PaymentProvider
  • ✓ PaymentMethod
  • ✓ PaymentState
  • ✓ PaymentType

📢 Eventos

  • ✓ PaymentCompleted

Se disparan cuando ocurre un pago exitoso

👂 Listeners

  • ✓ LogPaymentToDatabase
  • ✓ SendConfirmationEmail
  • ✓ SendAdminNotification
  • ✓ UpdateInventory

Escuchan eventos y ejecutan acciones

💡 Patrón Strategy: Cada proveedor implementa PaymentGateway con su lógica específica.
🏭 Factory Pattern: PaymentManager crea y cachea las instancias de servicios.
💉 Dependency Injection: Laravel inyecta automáticamente las dependencias.
📢 Event System: Los Eventos se disparan cuando un pago se completa.
👂 Listeners: Escuchan eventos y ejecutan acciones post-pago automáticamente.