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.