Skip to content
On this page
Home
>任务(令牌)
>Geetest

GeeTestTask: GeeTestV3/V4 协议接口

⚠️ 通过 createTask 创建任务, 然后通过 getTaskResult 获取识别结果

任务类型type如下

  • GeeTestTask 必须传入代理
  • GeeTestTaskProxyLess 是用服务器内置代理

创建任务

通过 createTask 创建任务。

参数结构

属性类型Required说明
typeStringYesGeeTestTask
GeeTestTaskProxyLess
websiteURLStringYes网页所在URL
gtStringYes三代必传
challengeStringYes三代必传
captchaIdStringYes四代必传
geetestApiServerSubdomainStringNo特定Api subdomain
proxyStringNo学习使用代理

请求示例

GeeTest 三代请求参数

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTask",//GeeTestTask,GeeTestTaskProxyLess
        "websiteURL":"http://mywebsite.com/geetest/test.php", //所在页面的URL
        "gt":"874703612e5cd0d", //验证码所在网站极验的gt值,仅三代
        "challenge":"",
        "geetestApiServerSubdomain":"", //特殊网站极验抓包为三级域名的比如这样的需要传对应的域名需要传此参数,注意不要带【http://】和【/】只需要域名即可
        "proxy":"",//代理参数,如果有些网站校验IP的话,可传此参数
    }
}

GeeTest 四代请求参数

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTask",//required GeeTestTask,GeeTestTaskProxyLess
        "websiteURL":"http://mywebsite.com/geetest/test.php", //required 所在页面的URL
        "captchaId": "", //required 四代参数为captcha_id值
        "geetestApiServerSubdomain":"", //optional 特殊网站极验抓包为三级域名的比如这样的需要传对应的域名需要传此参数,注意不要带【http://】和【/】只需要域名即可
        "proxy":"192.182.23.200:8000:user:pwd" //optional 代理参数,如果有些网站校验IP的话或者使用 GeeTestTask 传此参数
    }
}

响应示例

json
{
    "errorId": 0,
    "status": "idle",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // 请记录此ID
}

获取结果

使用 getTaskResult 方法获取识别结果,根据系统负载,您将在 3s 到 10s 的时间间隔内得到结果

请求示例

txt
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey":"YOU_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

响应示例

如果你请求了3代你应该解析三代结果,如果是四代则需要解析四代结果

三代响应示例

json
{
  "errorId": 0,
  "solution": {
    "challenge": "",
    "validate": ""
  },
  "status": "ready"
}

四代响应示例

json
{
  "errorId": 0,
  "taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
  "status": "ready",
  "solution": {
    "captcha_id": "",
    "captcha_output": "",
    "gen_time": "",
    "lot_number": "",
    "pass_token": "",
    "risk_type": "slide"
  }
}

使用 SDK 请求

python
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'

import capsolver
# capsolver.api_key = "..."
# v3
solution = capsolver.solve({
        "type":"GeeTestTaskProxyLess",
        "websiteURL":"http://mywebsite.com/geetest/test.php", 
        "gt":"874703612e5cd0d", 
        "challenge":"",
        "geetestApiServerSubdomain":"", 
       })
       
# v4
solution = capsolver.solve({
         "type":"GeeTestTaskProxyLess",
        "websiteURL":"http://mywebsite.com/geetest/test.php", 
        "captchaId": "", 
        "geetestApiServerSubdomain":"", 
       })
go
package main

import (
	"fmt"
	capsolver_go "github.com/capsolver/capsolver-go"
	"log"
)

func main() {
	// first you need to install sdk
	//go get github.com/capsolver/capsolver-go
	//export CAPSOLVER_API_KEY='...' or
	//capSolver := CapSolver{ApiKey:"..."}

	capSolver := capsolver_go.CapSolver{}
	// v3
	solution, err := capSolver.Solve(map[string]any{
		"type":"GeeTestTask",//GeeTestTask,GeeTestTaskProxyLess
		"websiteURL":"http://mywebsite.com/geetest/test.php", //所在页面的URL
		"gt":"874703612e5cd0d", //验证码所在网站极验的gt值,仅三代
		"challenge":"",
		"geetestApiServerSubdomain":"", //特殊网站极验抓包为三级域名的比如这样的需要传对应的域名需要传此参数,注意不要带【http://】和【/】只需要域名即可
		"proxy":"",//代理参数,如果有些网站校验IP的话,可传此参数
	})
	if err != nil {
		log.Fatal(err)
		return
	}
	fmt.Println(solution)
	//v4
	solution, err = capSolver.Solve(
		map[string]any{
			"type":       "GeeTestTask",
			"websiteURL": "http://mywebsite.com/geetest/test.php",
			"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
			"cptchaId":"12310989asdf",
			"geetestApiServerSubdomain":"",
		})
	if err != nil {
		log.Fatal(err)
	}
}

注意事项

  1. 请不要从浏览器开发者工具中直接复制,需要请求后获取 gtchallenge
  2. 少量错误重新获取验证码参数重试即可。
  3. 验证码参数只能提交识别一次,切勿同样的参数重复提交识别,需要重新初始化获取。
  4. 四代中【注意事项:如遇无法通过可能是网站编码问题,则 captcha_output=符号用%3D替换,其他无需编码,请注意该事项】。
  5. 测试服务端等参数可以在这里查询 Geetest文档