EveryInfra

MTCaptcha

MTCaptchaMTCaptcha勾选框 / 图像题(SOC 2 + GDPR 合规路线)一个组件框,多数配置下是低摩擦交互。厂商主打 “privacy-compliant”,宣称 SOC 2 Type 2 attested、GDPR 与 CCPA ready。

正在查询可用性…$2.22 / 1K 次按成功计费,失败退款

接口规格

项目
typemtcaptcha
必填参数website_urlwebsite_key
可选参数
返回一个 token 字符串solution.token
怎么用这个解填回目标站表单的 `mtcaptcha-verifiedtoken`
价格$2.22 / 1K 次 —— 按成功计费,没解出来退款
厂商文档MTCaptcha 官方文档

参数去页面哪里取

下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。

必填 website_url + website_key

⚠⚠ 这条和别家最不一样的地方:sitekey 不在 `data-*` 属性里

MTCaptcha 用一个全局 JS 配置对象传 sitekey:

<script>
  var mtcaptchaConfig = { "sitekey": "YOUR_SITEKEY" };
</script>
<script src="https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js" async defer></script>
<div class="mtcaptcha"></div>

所以照搬找 `data-sitekey` 的习惯会一无所获。正确取法是在控制台读那个全局对象:

mtcaptchaConfig.sitekey

(页面必须已经执行到配置那一段;官方要求配置写在脚本标签之前,以便脚本初始化时读得到。)
拿不到全局对象时,退回搜 HTML 里的 mtcaptchaConfig 字面量。

容器

挂载点用类名不是 id:<div class="mtcaptcha"></div>。页面上有这个 class 就是装了 MTCaptcha。

脚本域

service.mtcaptcha.com;另有备用域 service2.mtcaptcha.com(站点做 CSP 放行或需要固定出口 IP 时会用它)。看到 service2 不用慌,是同一家的官方备用域。

回填

隐藏 input 的 name 是 `mtcaptcha-verifiedtoken`(对应 reCAPTCHA 的 g-recaptcha-response)。后端只读这个字段。

调用示例

一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。

请求
curl -X POST https://api.everyinfra.com/api/v1/captcha \  -H "Authorization: Bearer omg_你的KEY" \  -H "Content-Type: application/json" \  -d '{"type":"mtcaptcha","website_url":"<website_url>","website_key":"<website_key>"}'
响应
{  "solution": {    "token": "…"  },  "billing": { "charged": true, "credits": 160 }}

怎么确认目标站用的就是它

客户端拿到一个 verified token,站点后端拿它去 `checktoken` 接口换判定。token **短期有效且一次性**——重复校验同一个 token 会触发 duplicate-token。

容易搞混的

名字里带 CAPTCHA 的一大堆,但 MTCaptcha 的取参方式是独一份:只有它把 sitekey 放在全局 JS 配置对象里。看到 mtcaptchaConfig 就能确定。

常见部署场景

已知的坑

sitekey 在 `mtcaptchaConfig` 全局对象里,不是 `data-sitekey` —— 这是本条最容易卡住的一步,按找 reCAPTCHA 的经验去翻 DOM 属性会找不到。

token 一次性:官方明写重复调用 checktoken 会报 duplicate-token。别把一个 token 提交两次。

常见错误码 invalid-token / token-expired 的实际含义多半是「提交了旧 token,而组件没刷新」。

站点后台的 SiteKey 与 PrivateKey 必须同属一个站点,否则报 privatekey-mismatch-token——这个错发生在目标站那一侧,不是我们没解出来。

常见问题

MTCaptcha 要传哪些参数?

必填 website_url、website_key,没有可选参数。请求里 type 传 mtcaptcha。

解出来的东西怎么用?

返回一个 token 字符串,取 solution.token。填回目标站表单的 mtcaptcha-verifiedtoken

mtcaptcha-verifiedtoken 要去页面的哪里找?

重点找 mtcaptcha-verifiedtoken、service2.mtcaptcha.com、service.mtcaptcha.com。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。

怎么确认目标站用的就是 MTCaptcha?

名字里带 CAPTCHA 的一大堆,但 MTCaptcha 的取参方式是独一份:只有它把 sitekey 放在全局 JS 配置对象里。看到 mtcaptchaConfig 就能确定。

有什么容易踩的坑?

sitekey 在 `mtcaptchaConfig` 全局对象里,不是 `data-sitekey` —— 这是本条最容易卡住的一步,按找 reCAPTCHA 的经验去翻 DOM 属性会找不到。

多少钱一次,失败扣不扣?

$2.22 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。

开始接入

一个端点覆盖全部验证码类型,按成功计费,失败与空结果一律退款。