Skip to content

Plugin PrestaShop

Le module Genius Checkout pour PrestaShop 8.x ajoute Genius Checkout comme option de paiement. L'acheteur sélectionne Genius Checkout, est redirigé vers le checkout hébergé GC, complète le paiement (3DS géré par GC), puis est renvoyé sur la page de confirmation de PrestaShop.

Installation

  1. Téléchargez geniuscheckout-prestashop.zip depuis votre tableau de bord marchand.
  2. Admin PrestaShop → Modules → Gestionnaire de modules → Téléverser un module.
  3. Téléversez le zip et cliquez Installer.

Configurer

Gestionnaire de modules → Genius Checkout → Configurer :

RéglageValeur
API KeyVotre clé gc_test_… ou gc_live_… (champ password)
Webhook Signing SecretMême valeur que dans Tableau de bord GC → Developers → Webhooks (champ password)
Test ModeActivez pendant la validation ; le mode du tableau de bord GC est déduit du préfixe de la clé

Dans le tableau de bord GC, configurez l'URL du webhook PrestaShop :

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

Abonnez au moins à : payment.completed, payment.failed, payment.refunded, payment.voided.

Flux de checkout

  1. L'acheteur arrive au checkout PrestaShop, choisit Genius Checkout (rendu via le hook paymentOptions).
  2. PrestaShop POST vers controllers/front/validation.php, valide le panier, crée une commande pending via Module::validateOrder, appelle POST /api/v1/checkout-sessions et redirige vers checkout_url.
  3. L'acheteur complète le paiement sur la page hébergée GC.
  4. GC envoie payment.completed au récepteur webhook. Le récepteur vérifie HMAC-SHA256 (X-GC-Signature sur {timestamp}.{body}, fenêtre de 5 minutes) et fait passer la commande à PS_OS_PAYMENT.

Fonctionnalités supportées

CapacitéStatut
RemboursementsOui — niveau câble ; déclenchez depuis l'écran de commande PrestaShop
TokenisationTokens stockés sur la plateforme GC ; PrestaShop n'affiche pas de sélecteur de cartes enregistrées aujourd'hui
AbonnementsPas nativement — PrestaShop n'a pas de moteur d'abonnements
Multi-deviseOui — utilise Currency::iso_code du panier, passé à GC sans modification

Remboursements

Depuis la page de détail de commande PrestaShop → Remboursement partiel / Remboursement standard. Le module appelle POST /api/v1/payments/{transaction_id}/refund ; la commande passe en PS_OS_REFUND à l'arrivée du webhook payment.refunded.

Sécurité webhook

Les webhooks entrants sont signés HMAC-SHA256. Le récepteur PrestaShop :

  • Rejette les livraisons dont X-GC-Timestamp s'écarte de plus de 5 minutes de l'horloge serveur.
  • Rejette les livraisons dont X-GC-Signature ne correspond pas à HMAC-SHA256("{timestamp}.{body}", webhook_secret).
  • Rejette les livraisons quand le secret configuré est vide ou fait moins de 16 caractères.

Voir Webhooks → Vérification de signature.

Dépannage

  • Commande bloquée dans un état pending type PS_OS_BANKWIRE — le scaffold actuel utilise le statut virement bancaire comme état de attente du webhook. Confirmez que l'URL du webhook est joignable depuis internet et que le secret correspond.
  • Logo absent sur le radio du mode de paiement — videz le cache PrestaShop (Paramètres avancés → Performance → Vider le cache).
  • 422 à la création de session — vérifiez que la devise du panier est dans la liste supportée et que le préfixe de la clé correspond au toggle Test Mode.

Soumission

Disponible sur PrestaShop Addons Marketplace (SLA de revue ~5 jours ouvrés).

Released under the proprietary Genius Checkout license.