---
title: WHMCS
---

# WHMCS

Module addon officiel CaptchaLa pour WHMCS. Ajoute la vérification CAPTCHA à l'espace client WHMCS — connexion, inscription, réinitialisation de mot de passe, formulaire de contact, soumission de ticket et validation du panier — sans écrire la moindre ligne de code.

Contrairement à un simple widget avec site-key, chaque challenge est adossé à un **token à usage unique émis par le serveur** (anti-rejeu), et aucun traceur tiers n'est chargé.

## Ce qui est couvert

Chaque surface ci-dessous est un interrupteur individuel dans les réglages du module — n'activez que celles que vous souhaitez protéger.

- Connexion
- Inscription
- Réinitialisation de mot de passe
- Formulaire de contact
- Soumission de ticket
- Validation du panier

## Prérequis

- WHMCS 8.x et 9.x (testé sur l'espace client 8.3 et 9.0 ; fonctionne avec les thèmes `six` et `twenty-one`, avec ou sans Friendly URLs)
- PHP 8.0+ (WHMCS 9.0 lui-même nécessite PHP 8.2+)
- Un compte CaptchaLa — récupérez votre **App Key** + **App Secret** sur [`dash.captcha.la`](https://dash.captcha.la)

## Installation

### 1. Installer le module

1. Téléchargez le dernier `whmcs-x.y.z.zip` depuis les [releases](https://github.com/Captcha-La/captchala-whmcs/releases).
2. Extrayez-le dans votre répertoire **racine WHMCS**. Cela ajoute `modules/addons/captchala/`.
3. Dans l'administration WHMCS, allez dans **Setup → Addon Modules**, trouvez **CaptchaLa** et cliquez sur **Activate**.

### 2. Configurer

Cliquez sur **Configure**, puis :

1. Collez votre **App Key** et votre **App Secret**.
2. Choisissez un **Widget mode** et un **Theme**.
3. Activez les formulaires à protéger.
4. Cliquez sur **Save Changes**.

Ouvrez la page **CaptchaLa** dans le menu latéral de l'administration pour exécuter un test de connexion en direct avec le tableau de bord.

::: tip
Après activation, si le widget n'apparaît pas, ré-enregistrez les réglages du module une fois — WHMCS n'enregistre le `hooks.php` d'un module que lorsque celui-ci est (ré)activé/enregistré.
:::

## Configuration

Tous les réglages se trouvent sous **Setup → Addon Modules → CaptchaLa → Configure**.

| Réglage | Type | Valeur par défaut | Description |
| --- | --- | --- | --- |
| App Key | string | — | Clé publique issue du tableau de bord CaptchaLa. Obligatoire. |
| App Secret | string | — | Secret serveur, utilisé pour émettre et valider les tokens. Obligatoire ; jamais exposé au navigateur. |
| Widget mode | enum | `popup` | `popup` (barre déclencheuse → challenge plein écran), `float` (panneau inline), `embed` (case inline), `bind` (invisible, intercepte la soumission). |
| Theme | enum | `default` | Préréglage de couleur : `default`, `dark`, `slate`, `emerald`, `amber`, `rose`. |
| Language | string | `auto` | Code BCP-47 (p. ex. `en`, `zh`, `de`) ou `auto` pour suivre le navigateur. |
| Protect login | bool | on | Applique le challenge à la connexion de l'espace client. |
| Protect registration | bool | on | Applique le challenge à l'inscription de nouveaux comptes. |
| Protect password reset | bool | on | Applique le challenge au formulaire de réinitialisation de mot de passe. |
| Protect contact form | bool | off | Applique le challenge au formulaire de contact. |
| Protect ticket submission | bool | off | Applique le challenge à l'étape finale de soumission de ticket. |
| Protect cart checkout | bool | off | Applique le challenge à la validation du panier. |
| Skip for logged-in users | bool | on | N'applique pas le challenge aux visiteurs disposant déjà d'une session client. |
| Failure message | string | — | Message affiché lorsque la vérification échoue. |

## Comment ça marche

Sur chaque page de formulaire protégé, le module émet un nouveau **token serveur (`sct_`)** depuis le tableau de bord, limité à l'action de ce formulaire, et affiche le widget qui lui est lié. Une fois que le visiteur a résolu le challenge, le SDK écrit un **token de passage à usage unique (`pt_`)** dans le formulaire. À la soumission, le module valide ce `pt_` côté serveur avant que WHMCS ne traite le formulaire ; les rejeux et les incohérences d'action sont rejetés.

Si le tableau de bord est temporairement injoignable, le module **échoue en mode ouvert** (laisse passer la soumission) afin que votre espace client ne soit jamais bloqué par un incident en amont.

## FAQ

**Le module est-il gratuit ?**

Oui. Le module est gratuit. L'offre gratuite CaptchaLa couvre 10 000 vérifications par mois — les offres payantes ne s'appliquent que si vous avez besoin de plus de volume.

**Fonctionne-t-il à la fois sur WHMCS 8 et 9 ?**

Oui — testé sur l'espace client 8.3 et 9.0, avec les thèmes `six` et `twenty-one`, avec ou sans Friendly URLs.

**Le widget n'apparaît pas.**

Ré-enregistrez les réglages du module une fois (Configure → Save Changes). WHMCS n'enregistre le `hooks.php` que lorsque le module est (ré)activé/enregistré.

## Sources

- Dépôt du module : [`github.com/Captcha-La/captchala-whmcs`](https://github.com/Captcha-La/captchala-whmcs)
- Problèmes / demandes de fonctionnalités : ouverts sur le dépôt ci-dessus
- À voir aussi : [SDK Web](/fr/web-sdk) · [SDK serveur PHP](/fr/sdk/server-php) · [Référence de l'API](/fr/api-reference)
