ANTICAPTCHA.TOP - API Docs
  • Hướng dẫn
  • Sử dụng API
    • API lấy số dư tài khoản
    • API lấy dịch vụ
    • API giải captcha
      • Image to Text - Captcha dạng ảnh chữ
      • ReCAPTCHA V2
      • ReCAPTCHA V3
      • GeeTest Captcha V3
      • GeeTest Captcha V4
      • Amazon AWF Captcha
      • Shopee Slide Captcha
      • Cloudflare Turnstile
      • TikTok kéo thả - Web
      • TikTok chọn 2 đối tượng - Web
      • TikTok xoay đối tượng - Web
      • TikTok kéo thả - App
      • TikTok chọn 2 đối tượng - App
      • Zalo kéo thả - App
      • Zalo chọn hình ảnh - Web
  • Extension cho trình duyệt
    • Extension AntiCaptcha.top cho Chrome/Cốc Cốc
    • Extension AntiCaptcha.top cho Firefox
  • 💥API V2
Powered by GitBook
On this page
  • Các kiểu Captcha GeeTest hỗ trợ
  • 1. Tìm gt và challenge của Geetest Captcha V3
  • 2. Tạo yêu cầu/Request
  • 3. Nhận kết quả trả về/Response
  • 4. Code mẫu
  • 5. Sử dụng kết quả token nhận được
  • Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước
  1. Sử dụng API
  2. API giải captcha

GeeTest Captcha V3

Hướng dẫn sử dụng API Giải Geetest Captcha V3 của anticaptcha.top

PreviousReCAPTCHA V3NextGeeTest Captcha V4

Last updated 2 months ago

Các kiểu Captcha GeeTest hỗ trợ

Hình minh họa
Kiểu
Ghi chú

slide

click

1. Tìm gt và challenge của Geetest Captcha V3

Mở developer's console của browser và tìm script element mà load GeeTest v3 script, trong đó sẽ có chứa tham số gt và challenge mà bạn cần nằm trong thuộc tính src của script.

Hoặc tìm JavaScript function initGeetest trong đó sẽ có chứa tham số gt và challenge mà bạn cần

2. Tạo yêu cầu/Request

POST : https://anticaptcha.top/api/captcha

Các tham số Body:

Tên trường dữ liệu

Kiểu dữ liệu

Bắt buộc

Mô tả

apikey

String

x

Key duy nhất để xác định đối tác API

type

Interger

x

Giá trị: 21

gt

String

x

Khóa định danh GeeTest cho tên miền. Giá trị tĩnh, hiếm khi cập nhật.

pageurl

String

x

geetestApiServerSubdomain

String

Subdomain của api Ví dụ: api-na.geetest.com

challenge

String

x

Một khóa động. Mỗi lần API của chúng tôi được gọi, chúng tôi cần nhận được một giá trị khóa mới. Nếu hình ảnh xác thực được tải trên trang thì giá trị challenge không còn hợp lệ và bạn sẽ gặp lỗi ERROR_TOKEN_EXPIRED.

Bạn sẽ vẫn bị tính phí cho các tác vụ có lỗi ERROR_TOKEN_EXPIRED!

Cần phải xem xét các request và tìm ra chỗ mà trong đó giá trị này được trả về và lấy giá trị challenge nó.

proxy

String

Định dạng ip:port:username:password Nếu truyền dạng này thì ko cần truyền các trường dữ liệu proxy ở dưới nữa

proxyType

String

Kiểu Proxy: http https socks5

proxyAddress

String

địa chỉ IP hoặc hostname của Proxy Ví dụ: 103.124.95.45

proxyPort

String

Proxy port Ví dụ: 8686

proxyLogin

String

Username proxy nếu có

proxyPassword

String

Password proxy nếu có

userAgent

String

User-Agent của trình duyệt của bạn sẽ được sử dụng để tải captcha. Chỉ sử dụng User-Agent của các trình duyệt hiện đại

POST HTTP
Url: https://anticaptcha.top/api/captcha
Content-Type: application/json

{
	"apikey": "YOUR_API_KEY",
	"type": 21, // captcha id của Geetest V3
	"gt": "022397c99c9f646f6477822485f30404", // thay bằng gt geetest của bạn
	"challenge": "52f990c29c603c9cbaa5beb773b627be", // thay bằng challenge của bạn
	"pageurl": "https://www.geetest.com/en/demo" // thay bằng url của bạn
	........ // các trường dữ liệu khác nữa nếu có
}

3. Nhận kết quả trả về/Response

Kết quả trả về dạng JSON gồm các trường sau

Tên trường dữ liệu

Kiểu dữ liệu

Mô tả

success

boolean

Mã thông báo xác định kết quả của bước gửi captcha qua POST

true: Thành công false: Thất bại

message

String

Thông báo tương ứng nếu có

captcha

String

kết quả giải ra = token dùng để vượt GeeTest Captcha V3

base64img

String

Không dùng đến

{
	"success": true,
	"message": "Thành công",
	"captcha": ""captcha": "{\"challenge\":\"52f990c29c603c9cbaa5beb773b627be\",\"validate\":\"6275e26419211d1f526e674d97110e15\",\"seccode\":\"510cd9735583edcb158601067195a5eb|jordan\"}", //kết quả giải ra
	"base64img": null
}
{
	"success": false,
	"message": null,
	"captcha": null,
	"base64img": null
}

hoặc

{
	"success": false,
	"message": "Số xu không đủ",
	"captcha": ""
}

hoặc

{
	"success": false,
	"message": "Api key không chính xác",
	"captcha": ""
}

4. Code mẫu

public class CatpchaResult
{
    public string log { get; set; }
    public bool status { get; set; }
    public string catcha { get; set; }
}
public class AnticaptchaTopApi
{
    public string apiKey = "";
    public string Post(string url, object data, string method = "POST")
    {
        int num = 0;
        NameValueCollection values;
        while (num < 1)
        {
            try
            {
                using (WebClient webClient = new WebClient())
                {
                    values = new NameValueCollection();
                    if (data != null)
                    {
                        data.GetType().GetProperties().ToList().ForEach(delegate (PropertyInfo pi)
                        {
                            values.Add(pi.Name, (pi.GetValue(data, null) ?? "").ToString());
                        });
                        byte[] bytes = webClient.UploadValues(url, method, values);
                        return Encoding.UTF8.GetString(bytes);
                    }
                    return webClient.DownloadString(url);
                }
             }
            catch
            {                
            }
        }
        return "";
    }
    public CatpchaResult GetCatpcha(int type=21,string gt,string challenge,string pageurl)
    {
        var data = new
        {
            apikey = apiKey,
            type = type,
            gt = gt,
            challenge = challenge,
            pageurl = pageurl
        };
        var rs = new CatpchaResult
        {
            status = false
        };
        try
        {
            var result = JsonConvert.DeserializeObject<dynamic>(Post("https://anticaptcha.top/api/captcha", data));
            if (result.success == true)
            {
                rs.status = true;
                rs.catcha = result.captcha;
                rs.log = result.message;
            }
        }
        catch
        {
        }
        return rs;
    }
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://anticaptcha.top/api/captcha",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"apikey\"\r\n\r\n[apikey]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\n21\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"gt\"\r\n\r\n022397c99c9f646f6477822485f30404\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"challenge\"\r\n\r\n52f990c29c603c9cbaa5beb773b627be\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"pageurl\"\r\n\r\n[url chứa geetest captcha]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var form = new FormData();
form.append("apikey", "[apikey]");
form.append("type", "21");
form.append("gt", "022397c99c9f646f6477822485f30404");
form.append("challenge", "52f990c29c603c9cbaa5beb773b627be");
form.append("pageurl", "[url chứa geetest captcha]");

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://anticaptcha.top/api/captcha",
  "method": "POST",
  "headers": {
    "cache-control": "no-cache"
  },
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

5. Sử dụng kết quả token nhận được

Sử dụng các giá trị được trả về trên trang web mục tiêu của bạn giống như cách chúng được sử dụng khi bạn giải hình ảnh xác thực theo cách thủ công. Có thể có một biểu mẫu với một tập hợp các input ẩn hoặc callback JavaScript. Hoặc bạn có thể chỉ cần xây dựng một yêu cầu HTTP với dữ liệu cần thiết

Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước

url của webpage hiển thị GeeTest Captcha mà bạn muốn giải Ví dụ:

https://www.geetest.com/en/demo
https://www.geetest.com/demo/