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]:
    1. POST /paypal/pago: Para iniciar el proceso de pago y crear la orden.
    2. GET /paypal/gracias: La ruta de éxito o Success tras completar el pago.
    3. 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].