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
- Descarga
geniuscheckout-prestashop.zipdesde tu panel de comerciante. - Admin PrestaShop → Módulos → Gestor de módulos → Subir un módulo.
- Sube el zip y haz clic en Instalar.
Configurar
Gestor de módulos → Genius Checkout → Configurar:
| Ajuste | Valor |
|---|---|
| API Key | Tu clave gc_test_… o gc_live_… (campo de contraseña) |
| Webhook Signing Secret | Mismo valor que en Panel GC → Developers → Webhooks (campo de contraseña) |
| Test Mode | Activa 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/webhookSuscribe al menos a: payment.completed, payment.failed, payment.refunded, payment.voided.
Flujo de checkout
- El comprador llega al checkout de PrestaShop, elige Genius Checkout (renderizado vía el hook
paymentOptions). - PrestaShop hace POST a
controllers/front/validation.php, valida el carrito, crea una orden pending víaModule::validateOrder, llama aPOST /api/v1/checkout-sessionsy redirige acheckout_url. - El comprador completa el pago en la página hospedada de GC.
- GC envía
payment.completedal webhook receiver. Este verifica HMAC-SHA256 (X-GC-Signaturesobre{timestamp}.{body}, ventana de 5 minutos) y transiciona la orden aPS_OS_PAYMENT.
Funcionalidades soportadas
| Capacidad | Estado |
|---|---|
| Reembolsos | Sí — a nivel de cable; dispara desde la pantalla de orden de PrestaShop |
| Tokenización | Tokens almacenados en la plataforma GC; PrestaShop no renderiza picker de tarjetas guardadas hoy |
| Suscripciones | No de forma nativa — PrestaShop no tiene motor de suscripciones |
| Multi-moneda | Sí — 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-Timestampestá más de 5 minutos fuera del reloj del servidor. - Rechaza entregas cuya
X-GC-Signatureno coincide conHMAC-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).
