Bỏ qua để đến nội dung
Trạng tháiBảng điều khiển

Loại tác vụ

Cloudflare Turnstile

Trang này được dịch máy từ bản tiếng Trung và có thể có sai sót. Nội dung theo bản tiếng Trung.

Hình minh họaTurnstile nằm bên trong một biểu mẫu. Phần lớn thời gian nó tự xác minh và hiện dấu tích; trang không chuyển hướng.

Tác vụ Cloudflare Turnstile trả về một token (token), bạn gửi token này cho website đích để vượt qua xác minh. TurnstileTaskProxyless có giá 25 điểm (≈ $3.75 / 1k) mỗi tác vụ, trả kết quả bất đồng bộ: gọi createTask, sau đó gọi getTaskResult mỗi 5 giây. Tác vụ thất bại hoặc quá thời gian sẽ tự động hoàn điểm.

POSThttps://api.yescaptcha.com/createTaskEndpoint quốc tế
POSThttps://cn.yescaptcha.com/createTaskEndpoint Trung Quốc

Nội dung request là JSON, xác thực bằng clientKey. Tạo tác vụ ở endpoint nào thì truy vấn kết quả ở endpoint đó.

Trang web có khung xác minh của Cloudflare (“Xác nhận bạn là người”) nhúng trong biểu mẫu, và tải script từ challenges.cloudflare.com/turnstile.

Nếu toàn bộ trang bị Cloudflare chặn và hiện “Vui lòng đợi…” hoặc “Đang kiểm tra trình duyệt của bạn” thì đó là trang thử thách Cloudflare, không phải Turnstile; hãy dùng trang thử thách Cloudflare. Cách phân biệt xem Xác định loại captcha.

Loại tác vụGiáCách trả kết quảGhi chú
TurnstileTaskProxyless$3.75 / 1k; 25 điểm/tác vụ · ¥25 / 1kBất đồng bộ
TurnstileTaskProxylessM1$4.50 / 1k; 30 điểm/tác vụ · ¥30 / 1kBất đồng bộ
TurnstileTask$3.75 / 1k; 25 điểm/tác vụ · ¥25 / 1kBất đồng bộDùng proxy riêng

Giá bằng đô la Mỹ chỉ là ước tính theo US$1 ≈ ¥6.67; tác vụ được trừ điểm.

  • TurnstileTaskProxyless và TurnstileTaskProxylessM1 có cùng tham số nhưng khác đường truyền, có thể dùng làm dự phòng cho nhau.
  • TurnstileTask dùng proxy của bạn để tải captcha, cần truyền các trường proxy.
TrườngKiểuBắt buộcMô tả
typestringCóLoại tác vụ; xem "Loại tác vụ và giá" trên trang này
websiteURLstringCóURL đầy đủ của trang hiển thị captcha. Điền trang web nơi bạn thấy captcha, không điền tên miền của nhà cung cấp captcha
websiteKeystringCóKhóa trang web (sitekey) của Turnstile, thường bắt đầu bằng 0x
pageActionstringKhôngGiá trị action mà trang truyền cho Turnstile (tùy chọn của turnstile.render, hoặc data-action trên phần tử widget), ví dụ login. Hầu hết trường hợp không cần; chỉ thêm khi tác vụ liên tục thất bại
datastringKhôngGiá trị cData mà trang truyền cho Turnstile (tùy chọn của turnstile.render, hoặc data-cdata trên phần tử widget), ví dụ c0bd4b36-7419-4e18-83c6-378699f2a9a2. Hầu hết trường hợp không cần; chỉ thêm khi tác vụ liên tục thất bại
proxyTypestringMột số loạiGiao thức proxy: http, https, socks4 hoặc socks5 (Bắt buộc với TurnstileTask)
proxyAddressstringMột số loạiĐịa chỉ IP hoặc tên máy chủ của proxy. Địa chỉ cục bộ hoặc nội bộ như 127.0.0.1 hay 192.168.x.x sẽ không hoạt động vì máy chủ của chúng tôi không truy cập được (Bắt buộc với TurnstileTask)
proxyPortintegerMột số loạiCổng proxy (Bắt buộc với TurnstileTask)
proxyLoginstringKhôngTên người dùng proxy, nếu proxy yêu cầu xác thực (chỉ TurnstileTask)
proxyPasswordstringKhôngMật khẩu proxy, nếu proxy yêu cầu xác thực (chỉ TurnstileTask)
userAgentstringKhôngUser-Agent của trình duyệt. Nếu kết quả có userAgent, hãy dùng giá trị đó khi gửi token (chỉ TurnstileTask)

websiteKey thường bắt đầu bằng 0x. Cách tìm xem Tìm tham số Turnstile.

Khi chắc chắn vẫn không vượt qua: pageAction và data

Phần tiêu đề “Khi chắc chắn vẫn không vượt qua: pageAction và data”

Trong hầu hết trường hợp chỉ cần websiteURL và websiteKey, không cần hai tham số này. Nếu bạn chắc chắn websiteURL và websiteKey đúng mà tác vụ vẫn không vượt qua, hãy kiểm tra xem trang web có truyền action và cData khi gọi Turnstile không (tham số của turnstile.render, hoặc data-action, data-cdata trên phần tử khung xác minh). Nếu có, truyền nguyên giá trị:

  • pageAction: điền action của trang, ví dụ login
  • data: điền cData của trang, ví dụ c0bd4b36-7419-4e18-83c6-378699f2a9a2
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY",
"pageAction": "login",
"data": "c0bd4b36-7419-4e18-83c6-378699f2a9a2"
}
}
POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'

Thay websiteURL, websiteKey bằng giá trị của website đích.

{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.ufq5RgSVZd11DPSX1brdrxnEs28KcVlKj2ORchqxSy2q9yAW6ciq3hriXDF4x...",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"
}
}
TrườngKiểuMô tả
tokenstringToken cần gửi cho website đích. Chỉ dùng một lần; nên gửi càng sớm càng tốt
userAgentstringUser-Agent đã dùng để lấy token. Hãy dùng giá trị này khi gửi token, kể cả khi nó khác với giá trị bạn đã gửi

Điền token vào trường cf-turnstile-response của trang (hoặc trường mà API của website đích yêu cầu) rồi gửi đi; request gửi đi dùng userAgent được trả về làm User-Agent.

Khi đang xử lý, kết quả là {"errorId": 0, "status": "processing"}, hãy truy vấn lại sau 5 giây. Khi có lỗi, xử lý theo errorCode, xem Mã lỗi.

Chỉ dùng một lần, nên gửi ngay sau khi nhận được (token Turnstile thường hết hạn sau vài phút, do Cloudflare quyết định).

Kiểm tra websiteURL là trang có khung xác minh và websiteKey đúng, đồng thời dùng userAgent được trả về khi gửi. Nếu trang có truyền action và cData, hãy thêm chúng vào dưới dạng pageAction và data, xem Khi chắc chắn vẫn không vượt qua ở trên. Nếu website còn kiểm tra IP, hãy dùng TurnstileTask và gửi qua cùng một proxy.