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
- Téléchargez
geniuscheckout-prestashop.zipdepuis votre tableau de bord marchand. - Admin PrestaShop → Modules → Gestionnaire de modules → Téléverser un module.
- Téléversez le zip et cliquez Installer.
Configurer
Gestionnaire de modules → Genius Checkout → Configurer :
| Réglage | Valeur |
|---|---|
| API Key | Votre clé gc_test_… ou gc_live_… (champ password) |
| Webhook Signing Secret | Même valeur que dans Tableau de bord GC → Developers → Webhooks (champ password) |
| Test Mode | Activez 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/webhookAbonnez au moins à : payment.completed, payment.failed, payment.refunded, payment.voided.
Flux de checkout
- L'acheteur arrive au checkout PrestaShop, choisit Genius Checkout (rendu via le hook
paymentOptions). - PrestaShop POST vers
controllers/front/validation.php, valide le panier, crée une commande pending viaModule::validateOrder, appellePOST /api/v1/checkout-sessionset redirige verscheckout_url. - L'acheteur complète le paiement sur la page hébergée GC.
- GC envoie
payment.completedau récepteur webhook. Le récepteur vérifie HMAC-SHA256 (X-GC-Signaturesur{timestamp}.{body}, fenêtre de 5 minutes) et fait passer la commande àPS_OS_PAYMENT.
Fonctionnalités supportées
| Capacité | Statut |
|---|---|
| Remboursements | Oui — niveau câble ; déclenchez depuis l'écran de commande PrestaShop |
| Tokenisation | Tokens stockés sur la plateforme GC ; PrestaShop n'affiche pas de sélecteur de cartes enregistrées aujourd'hui |
| Abonnements | Pas nativement — PrestaShop n'a pas de moteur d'abonnements |
| Multi-devise | Oui — 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-Timestamps'écarte de plus de 5 minutes de l'horloge serveur. - Rejette les livraisons dont
X-GC-Signaturene 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).
