Skip to content

WHMCS

WHMCS 官方 CaptchaLa 插件模块。为 WHMCS 客户区——登录、注册、找回密码、联系表单、工单提交、购物车结账——添加人机验证,无需写代码。

不同于普通的 site-key 控件,每次挑战都由服务端签发的一次性 token(防重放)托底,且不加载任何第三方追踪。

覆盖范围

下面每一项都是模块设置里的独立开关——只开你想保护的。

  • 登录
  • 注册
  • 找回密码
  • 联系表单
  • 工单提交
  • 购物车结账

环境要求

  • WHMCS 8.x 与 9.x(在 8.3 / 9.0 客户区测过;sixtwenty-one 主题、开不开 Friendly URLs 都可)
  • PHP 8.0+(WHMCS 9.0 本身要求 PHP 8.2+)
  • 一个 CaptchaLa 账号——在 dash.captcha.la 获取 App Key + App Secret

安装

1. 安装模块

  1. releases 下载最新的 whmcs-x.y.z.zip
  2. 解压到你的 WHMCS 根目录,会得到 modules/addons/captchala/
  3. WHMCS 后台 Setup → Addon Modules,找到 CaptchaLa,点 Activate

2. 配置

Configure,然后:

  1. 填入 App KeyApp Secret
  2. 选择控件模式主题
  3. 勾选要保护的表单。
  4. Save Changes

在后台侧边栏打开 CaptchaLa 页,可对 dashboard 做实时连接测试。

TIP

激活后若控件不显示,把模块设置重新保存一次——WHMCS 只在模块(重新)激活/保存时才注册 hooks.php

配置项

全部在 Setup → Addon Modules → CaptchaLa → Configure

设置类型默认说明
App Keystringdashboard 的公开 key。必填。
App Secretstring服务端密钥,用于签发与校验 token。必填;不会暴露给浏览器。
控件模式enumpopuppopup(触发条→全屏挑战)、float(内联面板)、embed(内联勾选框)、bind(隐形,拦截提交按钮)。
主题enumdefault颜色预设:defaultdarkslateemeraldamberrose
语言stringautoBCP-47 代码(如 enzhde)或 auto 跟随浏览器。
保护登录bool对客户区登录加验证。
保护注册bool对新账号注册加验证。
保护找回密码bool对找回密码表单加验证。
保护联系表单bool对联系表单加验证。
保护工单提交bool对工单提交的最终步加验证。
保护购物车结账bool对购物车结账加验证。
跳过已登录用户bool已有客户会话的访客不再验证。
失败提示string验证失败时显示的文案。

工作原理

在每个受保护的表单页,模块从 dashboard 签发一个绑定该表单 action 的服务端 token(sct_),并把控件绑定到它。访客解题后,SDK 把一个一次性 pass token(pt_)写进表单。提交时,模块在 WHMCS 处理表单之前先服务端校验该 pt_;重放和 action 不匹配会被拒绝。

如果 dashboard 暂时不可达,模块会失败放行(让提交通过),这样客户区不会因上游抖动被锁死。

FAQ

模块免费吗?

免费。模块本身免费。CaptchaLa 免费额度为每月 10,000 次验证 —— 仅在需要更高用量时才涉及付费计划。

WHMCS 8 和 9 都支持吗?

都支持——在 8.3 / 9.0 客户区、sixtwenty-one 主题、开不开 Friendly URLs 都测过。

控件不显示。

把模块设置重新保存一次(Configure → Save Changes)。WHMCS 只在模块(重新)激活/保存时才注册 hooks.php

源码

MIT-licensed examples · CaptchaLa is operated independently