Protection reCAPTCHA & hCaptcha : installation et aide

Démarrage rapide

  1. Téléversez et installez le ZIP mprrecaptcha dans "Module Manager".
  2. Cliquez sur "Configure" pour ouvrir Paramètres CAPTCHA.
  3. Choisissez "CAPTCHA Provider" et enregistrez les clés correspondantes dans Clé du site et Clé secrète.
  4. Sélectionnez les entrées nécessaires dans "Protect Forms".
  5. Configurez le seuil v3 et les clés de secours si vous utilisez v3.
  6. Activez "Enable CAPTCHA Protection" et enregistrez.
  7. Confirmez que les envois valides réussissent et que les jetons absents ou invalides bloquent chaque formulaire sélectionné ; résolvez tout échec d’intégration avant de compter sur la protection.

Nécessite PrestaShop 1.6 ou une version ultérieure et PHP 7.1 ou une version ultérieure.

Manuel de configuration

Vérifier la protection avant le déploiement

Le module peut afficher des widgets Google reCAPTCHA v2, reCAPTCHA v3 ou hCaptcha. Testez chaque formulaire sélectionné avec un jeton valide, un jeton manquant et un jeton invalide : un widget visible ne signifie pas à lui seul que le traitement du formulaire rejette les envois sans jeton valide.

Pour les formulaires natifs de connexion, d’inscription et de newsletter sélectionnés, une réponse CAPTCHA absente ou invalide empêche l’envoi. La désactivation de la protection CAPTCHA laisse l’inscription native disponible.

Installer et configurer

  1. Téléversez et installez le ZIP mprrecaptcha via "Modules" > "Module Manager".
  2. Cliquez sur "Configure" pour ouvrir Paramètres CAPTCHA.
  3. Sélectionnez "CAPTCHA Provider".
  4. Obtenez les clés correspondantes du fournisseur pour le domaine de votre boutique. Collez Clé du site et Clé secrète.
  5. Sélectionnez les formulaires sous "Protect Forms".
  6. Activez "Enable CAPTCHA Protection" et cliquez sur Enregistrer.
  7. Testez des jetons valides, absents et invalides sur chaque formulaire sélectionné. Confirmez que les contrôles échoués empêchent l’opération sous-jacente.

L’interrupteur CAPTCHA est désactivé au départ. L’affichage et la vérification restent inactifs tant que les deux clés principales ne sont pas présentes. Les champs secrets sont masqués dans le formulaire de paramètres. Vous avez besoin de PHP cURL et d’une connexion HTTPS entre votre serveur et le point de vérification du fournisseur.

Configurer Paramètres CAPTCHA

Paramètre Valeur par défaut Quand le modifier
"Enable CAPTCHA Protection" Désactivé Activez après avoir enregistré les clés et testé l’intégration.
"CAPTCHA Provider" "Google reCAPTCHA v2 (checkbox)" Sélectionnez "Google reCAPTCHA v3 (invisible)" ou hCaptcha si vous disposez des clés correspondantes. Un seul fournisseur s’applique à tous les formulaires sélectionnés.
Clé du site Vide Clé publique du fournisseur sélectionné pour le domaine de la boutique.
Clé secrète Vide Clé de vérification privée de la même configuration fournisseur.
"Protect Forms" "Contact form" et "Customer registration" Les autres choix sont "Customer login" et "Newsletter subscription". Ils sélectionnent les intégrations natives du module.
"reCAPTCHA v3 Threshold" 0.5 Saisissez un score de 0.0 à 1.0. Un seuil plus élevé rejette davantage de réponses à faible score. Une valeur vide revient à 0.5.
"Fallback to reCAPTCHA v2 after low v3 score" Désactivé Avec v3, activez un défi à case à cocher après un faible score. Nécessite les deux clés de secours.
"Fallback v2 Site Key" Vide Clé publique d’une configuration Google v2 à case à cocher distincte.
"Fallback v2 Secret Key" Vide Clé privée de cette configuration v2.
"Load provider script only when a protected form is present" Désactivé Activez pour charger les scripts via le widget/injecteur. Laissez désactivé si votre ancien thème exige un chargement global dans l’en-tête.

Par exemple, choisissez v3, sélectionnez "Contact form", "Customer registration" et "Newsletter subscription", puis fixez le seuil à 0.6. Ces paramètres appliquent la protection v3 aux formulaires sélectionnés.

Pour tester le secours v3, sélectionnez v3, utilisez un seuil plus strict comme 0.7, renseignez les deux clés v2 de secours et activez l’interrupteur de secours. Le module enregistre un défi en attente pour le formulaire après un faible score. La tentative suivante utilise la case v2. Un secours réussi efface cet état en attente.

Vérifier l’emplacement dans le thème

Le module s’affiche via ces hooks de formulaire lorsque votre thème les appelle :

{hook h='displayContactContent'}
{hook h='displayCustomerLoginFormAfter'}
{hook h='displayCustomerAccountForm'}
{hook h='displayNewsletterRegistration'}

Il utilise aussi displayGDPRConsent pour l’emplacement de contact concerné et un injecteur de pied de page pour les formulaires standards reconnaissables. Exemples : #login-form, #customer-form, .block_newsletter form et les contrôles nommés submitMessage, submitLogin ou submitAccount.

Gardez le widget à l’intérieur du formulaire. Ajouter un hook d’affichage ajoute uniquement un widget. Une intégration fonctionnelle de validation côté serveur reste nécessaire.

Vous pouvez cibler .mprrecaptcha-widget, .mprrecaptcha-contact, .mprrecaptcha-registration, .mprrecaptcha-newsletter et .mprrecaptcha-login dans le CSS du thème.

Les scripts des fournisseurs utilisent :

https://www.google.com/recaptcha/api.js
https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY
https://js.hcaptcha.com/1/api.js

Les réponses Google utilisent g-recaptcha-response. hCaptcha utilise h-captcha-response. Le secours v3 ajoute mprcaptcha_v2_fallback=1.

Vérifier la validation serveur

Le formulaire de contact natif est vérifié avant l’envoi. Une réponse CAPTCHA incorrecte empêche l’envoi du message.

L’intégration de contact vérifie également submitMessage sur le contrôleur de contact natif pendant actionFrontControllerSetMedia. Si la validation échoue, elle définit le champ honeypot du contact. Testez ce chemin avec votre module de contact installé.

Pour chaque formulaire sélectionné :

  1. Envoyez des données valides avec un défi valide et confirmez la réussite.
  2. Envoyez sans jeton et confirmez qu’aucun message, connexion, compte ou abonnement n’est créé.
  3. Répétez avec un jeton invalide.
  4. Testez l’emplacement sur mobile et ordinateur.
  5. Si vous utilisez le secours v3, testez la première tentative échouée et la nouvelle tentative réussie avec la case à cocher.

Si les envois invalides réussissent, le traitement du formulaire nécessite un travail d’intégration. Changer de fournisseur ou ajouter un widget ne corrige pas cela.

Intégrer un autre formulaire

Aucun réglage prêt à l’emploi n’existe pour la commande, la réinitialisation du mot de passe, les avis ou des formulaires tiers arbitraires. Un développeur peut utiliser renderForForm($formId) et verifyForForm($formId, $token, $ip) pour une intégration personnalisée. Utilisez un identifiant de formulaire stable contenant uniquement des lettres, chiffres, traits de soulignement ou traits d’union. Le traitement du formulaire doit refuser l’opération lorsque la vérification renvoie false. La vérification renvoie true lorsque la protection du module est inactive.

Résoudre les problèmes et désinstaller

Si un widget est absent, vérifiez les clés, l’activation, les formulaires sélectionnés, les hooks d’affichage, les sélecteurs et les requêtes fournisseur. Si de vrais utilisateurs échouent en v3, examinez le seuil et la réponse du fournisseur. Si la vérification échoue pour tous, vérifiez le domaine/type de clé et l’accès HTTPS/cURL du serveur. Utilisez la page "Integrity" du module pour les contrôles d’installation.

Désactivez "Enable CAPTCHA Protection" et enregistrez pour arrêter l’affichage et la validation CAPTCHA du module. Désinstallez via "Module Manager" pour supprimer son menu et ses paramètres enregistrés.

Compatibilité

Nécessite PrestaShop 1.6 ou une version ultérieure et PHP 7.1 ou une version ultérieure.

Captures d’écran de référence

reCAPTCHA & hCaptcha Protection, Fournisseur CAPTCHA sur le formulaire de contact

reCAPTCHA & hCaptcha Protection, CAPTCHA de contact dans la boutique

reCAPTCHA & hCaptcha Protection, Widget CAPTCHA sur le formulaire

reCAPTCHA & hCaptcha Protection, Jeton invisible reCAPTCHA v3

reCAPTCHA & hCaptcha Protection, CAPTCHA de newsletter dans la boutique

reCAPTCHA & hCaptcha Protection, Paramètres CAPTCHA du back-office

Questions

1

Comment le module évite-t-il d’ajouter un second widget sur la page de contact native ?

Lorsque le module actif contactform est enregistré dans displayContactContent, ce module n’affiche pas son widget dans ce hook. Il peut afficher le CAPTCHA de contact via displayGDPRConsent sur le contrôleur de contact à la place. Vérifiez la page de contact finale dans votre thème après avoir activé la protection.

Problèmes connus

11

Envois répétés réutilisant une vérification expirée

RésoluMis à jour :
Corrigé dans : 1.3.0
Un deuxième envoi ou une nouvelle tentative pouvait réutiliser un jeton reCAPTCHA v3 déjà utilisé et échouer à la validation.

Les clients ne peuvent pas créer de compte

RésoluMis à jour :
Corrigé dans : 1.3.1
L’inscription des clients pouvait échouer lorsque le module était actif, même si aucun CAPTCHA n’était requis pour l’inscription.

Renforcement de la sécurité

RésoluMis à jour :
Corrigé dans : 1.3.2
Renforcement de la sécurité.

CAPTCHA de contact affiché hors du formulaire

RésoluMis à jour :
Corrigé dans : 1.3.2
Le formulaire de contact natif pouvait afficher son CAPTCHA en dehors du formulaire.

Refus du CAPTCHA de newsletter sans message visible

RésoluMis à jour :
Corrigé dans : 1.3.2
Sur PrestaShop 1.6, une inscription à la newsletter refusée pouvait échouer sans afficher l’erreur CAPTCHA dans le bloc newsletter.

Formulaires actualisés perdant leur CAPTCHA fonctionnel

RésoluMis à jour :
Corrigé dans : 1.3.2
Les formulaires chargés ou actualisés sans rechargement de la page pouvaient dupliquer les widgets ou être envoyés sans le jeton de vérification actuel.

Formulaires tardifs et défis de secours non initialisés

RésoluMis à jour :
Corrigé dans : 1.2.0
Les formulaires chargés après la page pouvaient ne pas avoir de CAPTCHA fonctionnel, et les défis de secours de la newsletter pouvaient manquer.

Des libellés de l'administration restent non traduits

RésoluMis à jour :
Corrigé dans : 1.2.0
Certains libellés de l'administration restaient dans la langue source malgré les traductions disponibles.

Le module ne se charge pas sous PHP 7.1

RésoluMis à jour :
Corrigé dans : 1.1.2
Le module pouvait ne pas se charger sous PHP 7.1, car ses prérequis d'installation étaient générés de manière incorrecte.

Textes traduits endommagés

RésoluMis à jour :
Corrigé dans : 1.1.1
Certains libellés traduits de l'administration affichaient du texte endommagé.

Widgets CAPTCHA absents des formulaires standard

RésoluMis à jour :
Corrigé dans : 1.0.15
Les formulaires de contact et de connexion pouvaient apparaître sans leur widget CAPTCHA, y compris sur le thème classique.

Demandes de fonctionnalités

9

Implémenté

reCAPTCHA v3 invisible avec recours facultatif à la v2

Implémenté
Les formulaires protégés utilisent les contrôles invisibles de reCAPTCHA v3 avec un seuil de score configurable. Les paramètres du module permettent d’activer une vérification reCAPTCHA v2 avec case à cocher si le score est inférieur à ce seuil.

Protection CAPTCHA des formulaires

Implémenté
Configurez la protection CAPTCHA pour les formulaires de contact, connexion, inscription et newsletter.

Mises à jour depuis le back-office

Implémenté
Recherchez et installez les mises à jour du module depuis le back-office.

Administration multilingue

Implémenté
Utilisez l’administration du module en français, allemand, espagnol, italien et polonais.

Vérification de la configuration requise

Implémenté
Consultez les paramètres obligatoires manquants avant d’activer l’intégration.

CAPTCHA pour les formulaires supplémentaires

Implémenté
Les modules compatibles peuvent protéger des formulaires supplémentaires avec le fournisseur et les paramètres déjà configurés dans ce module.

Prise en charge de Friendly Captcha v2

Implémenté
Choisissez Friendly Captcha v2 comme fournisseur CAPTCHA et utilisez en option son point de terminaison européen.

Case à cocher de secours pour reCAPTCHA v3

Implémenté
Proposez une vérification reCAPTCHA v2 avec case à cocher après un faible score v3 au lieu de refuser immédiatement l’envoi.

Chargement conditionnel des scripts CAPTCHA

Implémenté
Chargez en option les scripts du fournisseur uniquement lorsqu’un formulaire protégé est présent.

Journal des modifications

v1.3.02026-10-25

  • Addedadmin menu management via MenuInstaller for streamlined module setup
Versions précédentes

v1.2.02026-10-15

  • AddedPS 9 / Hummingbird theme compatibility
  • AddedhCaptcha provider as an alternative to Google reCAPTCHA
  • Addedserver-side verification with configurable score threshold for v3
  • Improvederror messaging — failed verification now shows localised inline alert
  • FixedreCAPTCHA v3 token expiry on slow connections causing false negatives

v1.1.02026-06-23

  • Addedper-form enable/disable toggles: contact, login, registration, newsletter
  • AddedreCAPTCHA v2 invisible badge support
  • Fixedduplicate script injection when multiple protected forms on one page

v1.0.142026-05-27

  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedRender CAPTCHA on native contact forms

v1.0.152025-12-31

  • Maintenance release: refreshed bundled shared libraries and module icon

v1.0.02025-03-20

  • Initialrelease: Google reCAPTCHA v2 and v3 for PrestaShop forms
  • InitialContact form, account login, customer registration, and newsletter protection
  • InitialBack-office site key / secret key configuration
  • InitialCompatible with PS 1.7.x and PS 8.x

Demo

Testez le module complet avant d'acheter

Achetez la licence plus tard et gardez vos réglages.

  • Votre démo de 30 jours Testez-le sur votre propre boutique pendant 30 jours à partir de la première installation.
  • Boutique de démo prête Découvrez une boutique de démo prête dans votre navigateur.
  • Sans inscription Ni compte, ni e-mail, ni domaine de boutique requis.
Lancer la boutique de démo

En téléchargeant, vous acceptez les conditions de la démo et la politique de confidentialité.

En ouvrant cette démo, vous acceptez les conditions de la démo et la politique de confidentialité.

Chargement...
Retour en haut