Anti Double Paiement
Quand une validation 3D Secure tarde, le client croit à un échec et paie une seconde fois. Le module gèle le panier en attente, fait continuer le client sur une copie et le prévient : plus de double débit ni de commande manquante. Compatible Monetico (Crédit Mutuel, CIC).
Présentation
Le scénario est toujours le même. Le client lance son paiement, la banque lui demande de confirmer dans son application, la confirmation traîne. Il croit à un échec, revient sur la boutique, modifie son panier et paie à nouveau. Quand la première validation aboutit enfin, le panier ne correspond plus au montant payé : le client est débité deux fois et une commande manque. À vous le remboursement et les explications.
Anti Double Paiement intervient à ce moment précis, sans toucher à votre module de paiement :
- Le panier dont un paiement est en attente est gelé : il garde exactement le contenu et le montant payés, pour que la validation tardive de la banque crée normalement sa commande.
- Le client continue sur une copie identique de son panier, et un message lui explique, dans sa langue, qu'un paiement est en attente et qu'il est inutile de repayer.
- Dès que le premier paiement aboutit, la copie est vidée automatiquement si le client n'y a pas touché, et il en est informé.
- Si le client paie quand même deux fois, une note est ajoutée sur les deux commandes et vous êtes alerté par e-mail pour rembourser l'une d'elles.
Ce que fait ce module (et ce qu'il ne fait pas)
Ce module fait
- Il repère un paiement Monetico lancé récemment et resté sans réponse de la banque.
- Il gèle le panier concerné et fait travailler le client sur une copie.
- Il prévient le client par un message sur la boutique, modifiable langue par langue.
- Il signale un double paiement par une note sur les commandes et un e-mail au marchand.
Ce module ne fait pas
- Il ne bloque aucun paiement et n'empêche pas le client de payer : il évite qu'un paiement tardif tombe sur un panier modifié, et il prévient.
- Il ne rembourse rien : en cas de double paiement, le remboursement reste fait par vos soins, depuis votre espace Monetico ou PrestaShop.
- Il ne modifie pas votre module Monetico, ni aucun de ses fichiers.
- Il ne surveille que Monetico. Les autres solutions de paiement (PayZen, Systempay, Stripe, PayPal…) ne gardent aucune trace d'un paiement en cours côté boutique : le module ne peut pas les surveiller.
- Il ne protège que les paniers rattachés à un client (compte ou commande en invité), c'est-à-dire tous ceux qui sont allés jusqu'au paiement.
Compatibilité
- PrestaShop : 1.7.5 à 9.x, testé jusqu'à 9.2.
- PHP : 7.2 à 8.5.
- Paiement : le module Monetico officiel pour PrestaShop (versions 1.4.x et 2.x). S'il n'est pas détecté, l'écran « Configurer » l'indique : la protection n'a alors rien à surveiller.
- Thème : indépendant de votre thème. Les messages s'affichent dans la zone de notifications standard de PrestaShop.
- Base de données : le module crée une seule table, son historique
(
adp_cart_link). - Multiboutique : les réglages et les messages se règlent boutique par boutique, et l'historique indique la boutique concernée. La licence couvre une installation PrestaShop.
- Cohabitation : aucune interférence avec nos autres modules (Rétractation Pro, Retours SAV Pro, le pack).
Installation
- Dans votre back-office PrestaShop, allez dans Modules › Gestionnaire de modules › Installer un module.
- Sélectionnez le fichier
anti_double_paiement_1_2_1.zipreçu, puis validez. - Le module s'installe en mode « Actif pour tous les clients », avec les messages par défaut dans chaque langue de votre boutique (français et anglais fournis).
- Saisissez votre clé de licence dans l'écran « Configurer » (section suivante). Tant qu'elle n'est pas validée, la protection reste à l'arrêt.
Mise à jour sous PrestaShop 1.7. Avant d'envoyer le nouveau zip, rechargez la page Modules › Gestionnaire de modules (touche F5), puis envoyez le fichier une seule fois. Vérifiez ensuite que la version affichée est bien la nouvelle ; si l'ancienne s'affiche encore, ouvrez la page Configurer du module : la mise à jour s'y termine automatiquement, sans perte de données ni de clé de licence.
Désinstallation. Par défaut, l'historique des paniers gelés est conservé quand vous désinstallez le module, pour garder la trace des doubles paiements. Pour l'effacer aussi, activez « Supprimer l'historique à la désinstallation » dans les réglages avant de désinstaller.
Activation de la licence
Ce module est un produit sous licence édité par Acronet.fr. Sans clé valide, la protection s'arrête ; votre tunnel de commande, lui, fonctionne normalement : vos clients peuvent toujours commander et payer.
Obtenir votre clé
La clé est envoyée automatiquement par e-mail après votre commande sur la
boutique Acronet, au format ACR-XXXX-XXXX-XXXX-XXXX. Vous la retrouvez aussi dans
votre espace client, avec le lien de téléchargement du module.
Saisir la clé
- Ouvrez l'écran « Configurer » du module.
- Dans le panneau « Licence », collez votre clé dans le champ « Clé de licence ».
- Cliquez sur « Enregistrer et vérifier ». Le panneau affiche « Licence active : la protection est en service », avec votre domaine.
Une clé = un domaine. La clé se lie automatiquement au premier domaine qui l'active. Un site de test ou de préproduction consommerait donc la clé de votre boutique : prévoyez une licence par domaine. Pour changer de domaine, contactez-nous.
Tolérance de panne (30 jours). Une fois validée, votre clé reste active 30 jours même si nos serveurs sont injoignables : un incident chez nous ne coupe pas votre protection. La vérification a lieu au plus une fois par jour et n'attend jamais plus de quelques secondes. Le bouton « Actualiser » la relance à la demande.
Configuration
Tout se règle dans l'écran « Configurer » du module, panneau « Réglages » :
- Mode : Désactivé, Test (seuls les clients listés sont protégés) ou Actif pour tous les clients (réglage par défaut).
- E-mails clients de test : en mode Test, les comptes concernés, un e-mail par ligne. Pratique pour vérifier le comportement sur votre propre compte avant de l'ouvrir à tous.
- Durée d'attente surveillée : au-delà de cette durée, un paiement resté sans réponse est considéré comme abandonné. 60 minutes par défaut, 5 au minimum.
- E-mail d'alerte double paiement : l'adresse prévenue en cas de double paiement. Laissée vide, c'est l'e-mail de la boutique.
- Les trois messages au client, dans chaque langue : paiement en attente
(variables
{montant}et{heure}), paiement validé et panier vidé, paiement validé alors que le panier a été modifié (variables{montant}et{commande}). - Supprimer l'historique à la désinstallation : non par défaut.
Mode Test sans e-mail = aucune protection. Si vous choisissez le mode Test sans renseigner d'e-mail, le module ne protège personne : l'écran « Configurer » vous le signale.
Fonctionnement pas à pas
- Le client lance son paiement Monetico. Monetico enregistre la tentative ; la banque n'a pas encore répondu.
- Le client revient sur la boutique pendant l'attente (autre onglet, retour arrière, nouvelle visite). Le module constate le paiement en attente sur son panier.
- Le panier est gelé : le client est basculé sur une copie identique, bons de réduction compris, et voit le message « paiement en attente ». Le panier d'origine n'est plus modifiable par lui.
- La banque valide le premier paiement : la commande est créée normalement à partir du panier d'origine. À la visite suivante, si la copie n'a pas été touchée, elle est vidée et le client lit « votre paiement a bien été validé ». S'il l'a modifiée, il est invité à vérifier son panier avant de payer à nouveau.
- Le paiement n'aboutit pas : passé la durée surveillée, l'attente est considérée comme abandonnée et le client continue normalement sur sa copie.
Deux onglets ouverts sur le même panier ne créent pas deux copies : le second onglet rejoint la copie déjà créée. Les pages de retour et de notification de Monetico ne sont jamais interceptées.
Si un double paiement survient malgré tout
Un client peut payer sa copie alors que le premier paiement était encore en attente. Quand les deux commandes existent, le module :
- ajoute sur les deux commandes une note « DOUBLE PAIEMENT PROBABLE », avec les deux références ;
- vous envoie un e-mail d'alerte (client, commandes, montant du premier paiement) ;
- inscrit l'événement dans les journaux de PrestaShop (Paramètres avancés › Journaux).
Il vous reste à vérifier les deux commandes et à rembourser l'une d'elles. Ce signalement fonctionne même si votre licence a expiré entre-temps : un double paiement déjà engagé est toujours signalé.
Historique
Le panneau « Derniers paniers gelés » de l'écran « Configurer » affiche les 30 derniers événements (date, client, panier d'origine, copie, paiement, montant, commandes) et leur état :
- Paiement en attente : la banque n'a pas encore répondu ;
- Attente expirée / abandon : le paiement n'a pas abouti dans la durée surveillée ;
- 1er paiement validé, copie vidée : le cas nominal ;
- 1er paiement validé, panier modifié : le client a été invité à vérifier son panier ;
- ⚠ DOUBLE PAIEMENT : à traiter, un remboursement est probablement dû.
Dépannage
Il ne se passe rien
Vérifiez dans l'ordre, dans l'écran « Configurer » : la licence est-elle active ? le mode n'est-il pas Désactivé, ou Test sans e-mail ? un avertissement signale-t-il que Monetico n'est pas détecté ? Rappel : le module n'agit que pendant la durée surveillée qui suit le lancement d'un paiement.
La licence est refusée
Le panneau Licence en donne la raison : clé inconnue (vérifiez la saisie), déjà utilisée sur un autre domaine, suspendue ou révoquée. Dans les trois derniers cas, contactez-nous.
L'e-mail d'alerte n'arrive pas
Il est envoyé par le système d'e-mails de PrestaShop : vérifiez l'adresse d'alerte et la configuration des e-mails de votre boutique (Paramètres avancés › E-mail). Un envoi en échec est inscrit dans les journaux de PrestaShop. La note sur les commandes, elle, est toujours posée.
Mes messages s'affichent en anglais
Les messages sont fournis en français et en anglais. Pour une autre langue installée sur votre boutique, traduisez-les dans les réglages : chaque message a un champ par langue.
Besoin d'aide ?
Notre équipe répond aux questions d'installation, de configuration et d'usage de ce module. Précisez votre version de PrestaShop, votre version de PHP, celle de votre module Monetico, le domaine concerné et, si possible, une capture de l'écran posant problème.
