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

GeeTestTask: GeeTestV3/V4 协议接口

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

任务类型type如下

  • GeeTestTaskProxyLess

支持的图像类型

TypeNoteState
img.png滑块stable
img_2.png图标点选stable
img_2.png文字点选stable
img_2.png消消乐stable
img_2.png九宫格stable
img_2.png五子棋stable

创建任务

通过 createTask 创建任务。

参数结构

属性类型Required说明
typeStringYesGeeTestTask
GeeTestTaskProxyLess
websiteURLStringYes网页所在URL
gtStringYes三代必传
challengeStringYes三代必传
captchaIdStringYes四代必传
geetestApiServerSubdomainStringNo特定Api subdomain,可选

请求示例

GeeTest 三代请求参数

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTaskProxyLess",
        "websiteURL":"http://mywebsite.com/geetest/test.php", //所在页面的URL
        "gt":"...",
        "challenge":"...",
        "geetestApiServerSubdomain":"api.geetest.com", // 注意不要带`http://`和`/`
    }
}

GeeTest 四代请求参数

txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeeTestTaskProxyLess",
        "websiteURL":"http://mywebsite.com/geetest/test.php",
        "captchaId": "..."
    }
}

响应示例

json
{
    "errorId": 0,
    "status": "idle",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

获取结果

使用 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":"...", 
        "challenge":"...",
        "geetestApiServerSubdomain":"...", 
       })
       
# v4
solution = capsolver.solve({
         "type":"GeeTestTaskProxyLess",
        "websiteURL":"http://mywebsite.com/geetest/test.php", 
        "captchaId": "..."
       })
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":"GeeTestTaskProxyLess",
		"websiteURL":"http://mywebsite.com/geetest/test.php",
		"gt":"...",
		"challenge":"...",
		"geetestApiServerSubdomain":"..."
	})
	if err != nil {
		log.Fatal(err)
		return
	}
	fmt.Println(solution)
	//v4
	solution, err = capSolver.Solve(
		map[string]any{
			"type":       "GeeTestTaskProxyLess",
			"websiteURL": "http://mywebsite.com/geetest/test.php",
			"cptchaId":"..."
		})
	if err != nil {
		log.Fatal(err)
	}
}

注意事项

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