Skip to content

Plugin de PrestaShop

El módulo Genius Checkout para PrestaShop 8.x añade Genius Checkout como opción de pago. El comprador selecciona Genius Checkout, es redirigido al checkout hospedado de GC, completa el pago (3DS gestionado por GC) y vuelve a la página de confirmación de PrestaShop.

Instalación

  1. Descarga geniuscheckout-prestashop.zip desde tu panel de comerciante.
  2. Admin PrestaShop → Módulos → Gestor de módulos → Subir un módulo.
  3. Sube el zip y haz clic en Instalar.

Configurar

Gestor de módulos → Genius Checkout → Configurar:

AjusteValor
API KeyTu clave gc_test_… o gc_live_… (campo de contraseña)
Webhook Signing SecretMismo valor que en Panel GC → Developers → Webhooks (campo de contraseña)
Test ModeActiva mientras validas; el modo del panel GC se deriva del prefijo de la clave

En el panel GC, configura la URL del webhook de PrestaShop:

https://tu-prestashop.example.com/module/geniuscheckout/webhook

Suscribe al menos a: payment.completed, payment.failed, payment.refunded, payment.voided.

Flujo de checkout

  1. El comprador llega al checkout de PrestaShop, elige Genius Checkout (renderizado vía el hook paymentOptions).
  2. PrestaShop hace POST a controllers/front/validation.php, valida el carrito, crea una orden pending vía Module::validateOrder, llama a POST /api/v1/checkout-sessions y redirige a checkout_url.
  3. El comprador completa el pago en la página hospedada de GC.
  4. GC envía payment.completed al webhook receiver. Este verifica HMAC-SHA256 (X-GC-Signature sobre {timestamp}.{body}, ventana de 5 minutos) y transiciona la orden a PS_OS_PAYMENT.

Funcionalidades soportadas

CapacidadEstado
ReembolsosSí — a nivel de cable; dispara desde la pantalla de orden de PrestaShop
TokenizaciónTokens almacenados en la plataforma GC; PrestaShop no renderiza picker de tarjetas guardadas hoy
SuscripcionesNo de forma nativa — PrestaShop no tiene motor de suscripciones
Multi-monedaSí — usa Currency::iso_code del carrito, pasado a GC sin cambios

Reembolsos

Desde la página de detalle de orden de PrestaShop → Reembolso parcial / Reembolso estándar. El módulo llama a POST /api/v1/payments/{transaction_id}/refund; la orden se mueve a PS_OS_REFUND al llegar el webhook payment.refunded.

Seguridad de webhooks

Los webhooks entrantes están firmados con HMAC-SHA256. El receptor de PrestaShop:

  • Rechaza entregas cuyo X-GC-Timestamp está más de 5 minutos fuera del reloj del servidor.
  • Rechaza entregas cuya X-GC-Signature no coincide con HMAC-SHA256("{timestamp}.{body}", webhook_secret).
  • Rechaza entregas cuando el secret configurado está vacío o tiene menos de 16 caracteres.

Ver Webhooks → Verificación de firma.

Solución de problemas

  • Orden atascada en estado pending tipo PS_OS_BANKWIRE — el scaffold actual usa el estado de transferencia bancaria como holding mientras llega el webhook. Confirma que la URL del webhook sea alcanzable desde internet y que el secret coincida.
  • Logo ausente en el radio del método — limpia la caché de PrestaShop (Parámetros avanzados → Rendimiento → Vaciar caché).
  • 422 al crear sesión — verifica que la moneda del carrito esté en la lista soportada y que el prefijo de la clave coincida con el toggle Test Mode.

Publicación

Disponible en PrestaShop Addons Marketplace (SLA de revisión ~5 días hábiles).

Released under the proprietary Genius Checkout license.