PRODUCT TEST WORKSPACE

reCAPTCHA v2

Captcha verification product

RECAPTCHA_V2

01 / CREATE

創建任務

編輯器默認填入必填字段及一組條件字段。可選字段在下方文檔列出,也可一鍵填入。

02 / REQUEST

請求預覽

POST /api/validator/create.cgi
{
  "productCode" : "RECAPTCHA_V2",
  "adapter" : {
    "websiteURL" : "https://example.com/register",
    "websiteKey" : "YOUR_WEBSITEKEY"
  }
}

03 / RESULT

響應示例

EXAMPLE
Task ID —
{
  "code" : 0,
  "msg" : "操作成功",
  "data" : {
    "taskId" : "11111111-1111-4111-8111-111111111111",
    "productCode" : "RECAPTCHA_V2",
    "state" : "SUCCEEDED",
    "solution" : {
      "gRecaptchaResponse" : "EXAMPLE_GRECAPTCHARESPONSE",
      "token" : "EXAMPLE_TOKEN"
    }
  }
}

響應僅爲示例,不是真實任務結果。提交前請替換請求中的所有示例值。

狀態爲 SUCCEEDED 後讀取 data.solution。答案字段因產品而異,其他狀態可能返回空對象。

04 / API REFERENCE

reCAPTCHA v2 · API

建立與查詢任務時,將 API Key 統一放在 HTTP apiKey 請求標頭中;JSON 請求本文只包含業務參數。

Content-Type: application/json
apiKey: YOUR_API_KEY

請求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
  "adapter": { // 產品專屬參數對象。
    "websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
    "websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
    "pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
    "apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
    "isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
    "minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
    "userAgent": "YOUR_BROWSER_USER_AGENT", // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
    "isInvisible": false, // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
    "cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
    "proxyType": "http", // v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
    "proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
    "proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
    "proxyLogin": "YOUR_PROXYLOGIN", // 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
    "proxyPassword": "YOUR_PROXYPASSWORD", // 同一個已設定代理的可選認證密碼。
    "recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // 一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。
  }
}

請求標頭: apiKey: YOUR_API_KEY

註解用於說明欄位,複製後取得不含註解的標準 JSON。

響應示例

POST /api/validator/query.cgi · JSONC
{
  "code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
  "msg": "操作成功", // 結果說明,成功時可能為空。
  "data": { // 回應資料,介面報錯時可能為 null。
    "taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
    "productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
    "state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
    "solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
      "gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
      "token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
    }
  }
}

建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。

請求參數說明

字段類型必填說明
productCodestring是產品編碼,必須與 adapter 參數匹配。
adapterobject是產品專屬參數對象。
adapter.websiteURLstring是從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
adapter.websiteKeystring是從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
adapter.pageActionstring否取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
adapter.apiDomainstring否從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
adapter.minScorenumber否根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
adapter.userAgentstring否讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
adapter.isInvisibleboolean否從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
adapter.cookiesstring否v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
adapter.proxyTypestring否v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
adapter.proxyAddressstring否可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
adapter.proxyPortinteger否代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
adapter.proxyLoginstring否呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
adapter.proxyPasswordstring否同一個已設定代理的可選認證密碼。
adapter.recaptchaDataSValuestring否一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。

回應參數說明

字段類型說明
codeinteger業務回傳碼,0 表示成功,其他值表示錯誤。
msgstring結果說明,成功時可能為空。
dataobject | null回應資料,介面報錯時可能為 null。
data.taskIdstring創建任務返回的任務 ID。
data.productCodestring產品編碼,必須與 adapter 參數匹配。
data.statestring任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 時的產品答案;處理中或失敗時為空物件。
data.failureobject | omitted僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。
data.failure.codestring失敗編碼
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交至目標網站的驗證權杖。
data.solution.tokenstring提交至目標網站的驗證權杖。

響應

HTTP 業務響應包含 code、msg 和 data;code 爲 0 表示成功。WebSocket 使用獨立的消息結構。

-1317
API Key 無效。
-1100 / -1101
請求參數錯誤或缺失。
-1401
餘額不足,請儲值後再建立任務
-1400 / -1001
系統或創建任務錯誤。
API文件