Diferencias clave entre Stripe, Redsys y PayPal
| Característica | 💳 Stripe | 🏦 Redsys | 💰 PayPal |
|---|---|---|---|
| Tipo de Integración | API REST + JS | Formulario + Redirección | SDK + Redirección |
| Flujo de Pago | En tu sitio | TPV externo | Sitio de PayPal |
| Experiencia Usuario | ✅ Excelente | ⚠️ Buena | ✅ Buena |
| Reembolsos API | ✅ Sí | ✅ Sí | ✅ Sí |
| Pagos Parciales | ✅ Sí | ❌ No | ✅ Sí |
| Suscripciones | ✅ Nativo | ⚠️ Limitado | ✅ Nativo |
| Webhooks | ✅ Completos | ✅ Básicos | ✅ Completos |
| Documentación | ✅ Excelente | ⚠️ Regular | ✅ Muy Buena |
| Testing | ✅ Tarjetas test | ✅ Entorno test | ✅ Sandbox |
| Comisiones | 1.4% + 0.25€ | Variable (banco) | 2.9% + 0.35€ |
Pagos modernos con API
// Ejemplo de código Stripe $gateway = $manager->driver(PaymentProvider::STRIPE); $response = $gateway->initiate(new PaymentRequest( amount: 50.00, currency: 'EUR', orderId: 'ORDER-123' )); // Devuelve clientSecret para usar con Stripe.js en frontend return view('checkout', [ 'clientSecret' => $response->clientSecret ]);
TPV de bancos españoles
// Ejemplo de código Redsys $gateway = $manager->driver(PaymentProvider::REDSYS); $response = $gateway->initiate(new PaymentRequest( amount: 50.00, currency: 'EUR', orderId: str_pad(time(), 12, '0'), paymentMethod: PaymentMethod::BIZUM // o CARD )); // Devuelve formulario HTML que se auto-envía al TPV return view('redsys-redirect', [ 'formHtml' => $response->formHtml ]);
Pagos reconocidos mundialmente
// Ejemplo de código PayPal $gateway = $manager->driver(PaymentProvider::PAYPAL); $response = $gateway->initiate(new PaymentRequest( amount: 50.00, currency: 'EUR', orderId: 'ORDER-123', returnUrl: route('payments.paypal.return') )); // Redirige al usuario a PayPal para aprobar el pago return redirect($response->redirectUrl);
La mejor estrategia es ofrecer varios métodos de pago. Usa Stripe como principal, añade Redsys para Bizum, y PayPal como alternativa. Gracias a la arquitectura con Strategy Pattern, es muy fácil tener múltiples proveedores.