Plugin OpenCart
L'extension Genius Checkout pour OpenCart 4.x ajoute Genius Checkout comme moyen de paiement sur les boutiques OpenCart.
Installation
- Téléchargez le zip de l'extension depuis votre tableau de bord marchand.
- Admin OpenCart → Extensions → Installer → Upload.
- Puis Extensions → Extensions → Payments → Genius Checkout → Install.
Configurer
Extensions → Payments → Genius Checkout → Edit :
| Réglage | Valeur |
|---|---|
| API Key | Votre clé gc_test_… ou gc_live_… (champ password) |
| Webhook Secret | Même valeur que dans Tableau de bord GC → Developers → Webhooks (champ password) |
| Test Mode | Activez pendant la validation |
| Approved Order Status | Statut à appliquer sur payment.completed (en général Processing) |
| Failed Order Status | Statut à appliquer sur payment.failed (en général Failed) |
| Refunded Order Status | Statut à appliquer sur payment.refunded / payment.partially_refunded |
| Geo Zone | Restreindre par pays (optionnel) |
| Sort Order | Ordre d'affichage dans la liste de moyens de paiement |
URL webhook dans le tableau de bord GC :
https://votre-opencart.example.com/index.php?route=extension/payment/genius_checkout/callbackAbonnez au moins à : payment.completed, payment.failed, payment.refunded.
Flux de checkout
- L'acheteur arrive au checkout OpenCart et choisit Genius Checkout.
- Le contrôleur catalogue rend un bloc Pay-now qui POST vers
confirm(). confirm()appellePOST /api/v1/checkout-sessionsavec le total commande, l'e-mail client, et l'URL de retour versindex.php?route=checkout/success.- Nous répondons avec
{checkout_url, session_id}. Le plugin redirige. - Après paiement, l'acheteur est renvoyé vers l'URL de succès avec
?gc_charge_id=…. - De manière asynchrone, GC envoie
payment.completed/payment.failedau callback ; le plugin fait passer la commande au statut configuré.
Fonctionnalités supportées
| Capacité | Statut |
|---|---|
| Remboursements (total) | Oui — propagé via webhook payment.refunded |
| Remboursements partiels | Niveau câble (géré par l'événement entrant payment.partially_refunded) |
| Tokenisation | Tokens sur la plateforme GC ; OpenCart n'affiche pas de sélecteur de cartes enregistrées aujourd'hui |
| Abonnements | Pas nativement — OpenCart n'a pas de moteur d'abonnements |
Remboursements
Les marchands GC initient les remboursements depuis le tableau de bord GC ou via l'API ; la commande OpenCart passe automatiquement au statut Refunded à l'arrivée du webhook payment.refunded. Déclencher des remboursements depuis l'intérieur d'OpenCart est sur la roadmap.
Sécurité webhook
Les webhooks entrants sont signés HMAC-SHA256. Le récepteur OpenCart vérifie X-GC-Signature sur {timestamp}.{body} (fenêtre de 5 minutes) et rejette les mismatches.
Dépannage
- Le bouton Pay-now ne fait rien — ouvrez la console navigateur ; un JS manquant signifie généralement qu'un override de thème a supprimé l'URL de callback. Relancez le pas d'installation admin.
- Commande ne transitionne pas — confirmez que l'URL du webhook se résout depuis internet (OpenCart est souvent derrière des WAF qui jettent les POST signés).
alert()à la place d'une erreur stylée — videz le cache OC ; le template v4.x utilise un block.alertBootstrap qui ne s'affiche pas tant que le thème n'est pas reconstruit.
Soumission
Disponible sur OpenCart Marketplace.
