37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
Duración: 27 min
Módulo: 💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4 de
9
Descripción
Lección 37: 💳 Pasarela de Pagos PayPal | Integración y Lógica de Checkout
Este capítulo se enfoca en la instalación e integración inicial de la pasarela de pagos de PayPal en el e-commerce, preparando el sistema para procesar transacciones en modo de prueba (Sandbox).
📦 Instalación de la Librería y Configuración de Credenciales
Se incorpora un paquete de terceros para facilitar la integración de PayPal:
- Instalación del Paquete: Se utiliza la librería srmk/paypal mediante Composer [01:58].
- Tip: Si ocurre un error de caché durante la instalación, se recomienda limpiar la caché de Laravel (php artisan cache:clear) y regenerar la carga automática de Composer (composer dump-autoload) [05:57].
- Configuración del Entorno (.env) 🔑: Se añaden las credenciales de la cuenta Sandbox de PayPal (obtenidas del Developer Dashboard) al archivo .env del proyecto [08:25]:
- PAYPAL_MODE: Se establece en sandbox para el desarrollo [09:14].
- PAYPAL_SANDBOX_CLIENT_ID y PAYPAL_SANDBOX_CLIENT_SECRET.
- Ajuste de Divisa 💵: Se verifica y se recomienda que la moneda del sistema se establezca en Dólares Americanos (USD) para las pruebas de PayPal [10:36].
🛣️ Rutas y Controlador de Pagos
Se establece la estructura del controlador que manejará toda la lógica de la pasarela:
- Creación del Controlador: Se crea el PayPalController para encapsular la lógica de pago [12:12].
- Definición de Rutas 🚦: Se definen tres rutas esenciales para el proceso de pago [12:46]:
- POST /paypal/pago: Para iniciar el proceso de pago y crear la orden.
- GET /paypal/gracias: La ruta de éxito o Success tras completar el pago.
- GET /paypal/cancelar: La ruta de cancelación si el usuario aborta la transacción.
- Instanciación del Cliente PayPal: Se utiliza un constructor en el PayPalController para inicializar el cliente de PayPal, cargando las credenciales desde la configuración [15:17].
💸 Lógica de Creación de la Orden de Pago
Se implementa la función pago que recibe el monto total y se comunica con la API de PayPal:
- Recepción del Monto: Se recupera el valor total del carrito desde un campo hidden en el formulario de la vista [18:15].
- Preparación de la Orden: Se construye un array de datos (data) que incluye el monto total, la divisa (USD) y la descripción de la compra [20:14].
- Creación de la Orden: Se intenta crear la orden de pago a través del proveedor de PayPal.
- Corrección de SSL: Se identifica y resuelve un problema de seguridad común en entornos locales (no HTTPS). Se establece el setting de verificación SSL del cliente PayPal en false para permitir la comunicación durante el desarrollo, con la advertencia de cambiarlo a true en producción [25:08].
- Resultado: Si la orden se crea con éxito, la respuesta de PayPal muestra el estado CREATED y la información de la orden, lista para el siguiente paso (redirección y aprobación) [26:32].
Lecciones
🚀 Configuración Inicial y Sistema de Administración 1-6
🛡️ Roles, Permisos y Gestión de Usuarios (Spatie) 7-16
Lección 4. 10 ⚙️ CRUD Completo de Roles | Spatie Roles & Permisos | Ecommerce Laravel 12 FullStack
25 min
Lección 6. 12 🔐 Ajustes en el Login y Seeder de Usuarios | Sistema Ecommerce Laravel 12 FullStack
40 min
Lección 8. 14 🔍 Buscador y Detalle de Usuarios (Acción Show) | Ecommerce Laravel 12 FullStack
32 min
📦 Módulos Esenciales (Categorías y Productos) 17-24
🛒 Tienda Online (Frontend Shop) y Funcionalidades 25-33
Lección 4. 28 🛒 Vista Show Dinámica del Producto | Descripción y Datos Relacionados | Laravel 12
15 min
💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4. 37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
27 min
Lección 5. 38 ✅ PAGO COMPLETADO y REGISTRO de Pedido | Lógica Final de Venta con PayPal y Laravel 12
11 min
⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 5. 47 🔗 BUSCADOR AVANZADO: Filtrando Tablas Relacionadas con WHERE HAS y Joins en Laravel 12
10 min
📊 Análisis de Datos, Despliegue y Conclusión 62-68
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️