Skip to content

Plugin de OpenCart

La extensión Genius Checkout para OpenCart 4.x añade Genius Checkout como método de pago en tiendas OpenCart.

Instalación

  1. Descarga el zip desde tu panel de comerciante.
  2. Admin OpenCart → Extensions → Installer → Upload.
  3. Luego Extensions → Extensions → Payments → Genius Checkout → Install.

Configurar

Extensions → Payments → Genius Checkout → Edit:

AjusteValor
API KeyTu clave gc_test_… o gc_live_… (campo de contraseña)
Webhook SecretMismo valor que en Panel GC → Developers → Webhooks (campo de contraseña)
Test ModeToggle mientras validas
Approved Order StatusEstado a aplicar en payment.completed (típicamente Processing)
Failed Order StatusEstado a aplicar en payment.failed (típicamente Failed)
Refunded Order StatusEstado a aplicar en payment.refunded / payment.partially_refunded
Geo ZoneRestringir a países (opcional)
Sort OrderOrden de visualización en la lista de métodos

URL de webhook en el panel GC:

https://tu-opencart.example.com/index.php?route=extension/payment/genius_checkout/callback

Suscribe a: payment.completed, payment.failed, payment.refunded.

Flujo de checkout

  1. El comprador llega al checkout de OpenCart y elige Genius Checkout.
  2. El controller de catálogo renderiza un bloque Pay-now que hace POST a confirm().
  3. confirm() llama a POST /api/v1/checkout-sessions con el total de la orden, email del cliente, y URL de retorno apuntando a index.php?route=checkout/success.
  4. Respondemos con {checkout_url, session_id}. El plugin redirige.
  5. Tras el pago, el comprador es devuelto a la URL de éxito con ?gc_charge_id=….
  6. Asincrónicamente, GC empuja payment.completed / payment.failed al callback; el plugin transiciona la orden.

Funcionalidades soportadas

CapacidadEstado
Reembolsos (total)Sí — propagado vía webhook payment.refunded
Reembolsos parcialesA nivel de cable (manejado por el evento entrante payment.partially_refunded)
TokenizaciónTokens en la plataforma GC; OpenCart no renderiza picker de tarjetas guardadas hoy
SuscripcionesNo de forma nativa — OpenCart no tiene motor de suscripciones

Reembolsos

Los comercios GC inician reembolsos desde el panel GC o vía API; la orden OpenCart transiciona automáticamente al estado Refunded al llegar el webhook payment.refunded. Disparar reembolsos desde dentro de OpenCart está en el roadmap.

Seguridad de webhooks

Los webhooks entrantes están firmados con HMAC-SHA256. El receptor OpenCart verifica X-GC-Signature sobre {timestamp}.{body} (ventana de 5 minutos) y rechaza mismatches.

Solución de problemas

  • El botón Pay-now no hace nada — abre la consola del navegador; falta de JS suele significar que un override del tema quitó la URL del callback. Re-ejecuta el paso de instalación.
  • La orden no transiciona — confirma que la URL del webhook resuelve desde internet (OpenCart suele estar detrás de WAFs que descartan POSTs firmados).
  • alert() mostrándose en lugar de error estilizado — limpia la caché OC; el template v4.x usa un bloque .alert Bootstrap que no renderiza hasta que se reconstruye el tema.

Publicación

Disponible en OpenCart Marketplace.

Released under the proprietary Genius Checkout license.