Getting Started

Gọi lại và Bỏ phiếu: Cung cấp kết quả CaptchaAI

CaptchaAI cung cấp hai cách để nhận kết quả CAPTCHA đã giải: bỏ phiếu (bạn hỏi liên tục) và gọi lại (chúng tôi sẽ thông báo cho bạn). Cả hai đều hoạt động với tất cả các loại CAPTCHA. Đây là khi nào nên sử dụng từng cái.

Bỏ phiếu (Mặc định)

Thăm dò điểm cuối res.php cứ sau 5 giây cho đến khi có kết quả:

import requests
import time

API_KEY = "YOUR_API_KEY"

# Submit
resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com"
})
task_id = resp.text.split("|")[1]

# Poll
while True:
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY,
        "action": "get",
        "id": task_id
    })
    if result.text == "CAPCHA_NOT_READY":
        continue
    if result.text.startswith("OK|"):
        token = result.text.split("|")[1]
        break

Ưu điểm bỏ phiếu

  • Đơn giản để thực hiện
  • Không cần cơ sở hạ tầng máy chủ
  • Hoạt động trong mọi môi trường (script, serverless, CLI)
  • Không có mối lo ngại về tường lửa hoặc mạng

Nhược điểm bỏ phiếu

  • Lãng phí các yêu cầu trong khi chờ đợi (cứ 5 giây một lần)
  • Thêm độ trễ - bạn kiểm tra sau khi quá trình giải quyết hoàn tất chứ không phải ngay lập tức
  • Khối lượng lệnh gọi API cao hơn

Gọi lại (Webhook)

Cung cấp URL pingback khi gửi. CaptchaAI đăng kết quả lên URL của bạn khi giải xong:

# Submit with callback URL
resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "SITE_KEY",
    "pageurl": "https://example.com",
    "pingback": "https://your-server.com/captcha-callback"
})
task_id = resp.text.split("|")[1]
# No polling needed — result arrives at your callback URL

CaptchaAI gửi yêu cầu GET tới URL gọi lại của bạn:

GET https://your-server.com/captcha-callback?id=TASK_ID&code=TOKEN

Máy chủ gọi lại (Python Flask)

from flask import Flask, request

app = Flask(__name__)
results = {}

@app.route("/captcha-callback")
def callback():
    task_id = request.args.get("id")
    token = request.args.get("code")
    results[task_id] = token
    return "OK", 200

@app.route("/get-result/<task_id>")
def get_result(task_id):
    token = results.get(task_id)
    if token:
        return {"status": "solved", "token": token}
    return {"status": "pending"}, 202

if __name__ == "__main__":
    app.run(port=8080)

Máy chủ gọi lại (Node.js Express)

const express = require("express");
const app = express();

const results = new Map();

app.get("/captcha-callback", (req, res) => {
  const { id, code } = req.query;
  results.set(id, code);
  res.send("OK");
});

app.get("/get-result/:taskId", (req, res) => {
  const token = results.get(req.params.taskId);
  if (token) {
    res.json({ status: "solved", token });
  } else {
    res.status(202).json({ status: "pending" });
  }
});

app.listen(8080);

Ưu điểm gọi lại

  • Thông báo ngay lập tức khi giải quyết xong
  • Không có yêu cầu bỏ phiếu lãng phí
  • Hiệu quả hơn khi sử dụng với số lượng lớn
  • Tốt hơn cho kiến trúc không đồng bộ

Nhược điểm gọi lại

  • Yêu cầu một máy chủ có thể truy cập công khai
  • Cần xử lý độ tin cậy của webhook (thử lại, hết thời gian chờ)
  • Cơ sở hạ tầng phức tạp hơn
  • Yêu cầu thiết lập Tường lửa/networking

So sánh

Yếu tố Bỏ phiếu Gọi lại
Cơ sở hạ tầng cần thiết không có Máy chủ web có URL công khai
Độ phức tạp thực hiện Đơn giản Trung bình
Độ trễ sau khi giải quyết 0-5 giây Gần ngay lập tức
Lệnh gọi API cho mỗi lần giải ~3-12 (yêu cầu bỏ phiếu) 1 (chỉ gửi)
Tốt nhất cho Kịch bản, dự án nhỏ Ứng dụng máy chủ, khối lượng lớn
Hoạt động đằng sau tường lửa ❌ (cần URL công khai)
Hoạt động ở chế độ không có máy chủ ⚠️ (yêu cầu điểm cuối webhook)

Khi nào nên sử dụng mỗi

Sử dụng bỏ phiếu khi:

  • Chạy tập lệnh cục bộ hoặc công cụ CLI
  • Xây dựng nguyên mẫu hoặc thử nghiệm
  • Đằng sau tường lửa không có máy chủ công cộng
  • Xử lý ít hơn 100 CAPTCHA mỗi giờ
  • Sử dụng các chức năng không có máy chủ (Lambda, Cloud Function)

Sử dụng lệnh gọi lại khi:

  • Xử lý hơn 100 CAPTCHA mỗi giờ
  • Chạy một ứng dụng web với máy chủ đã có sẵn
  • Xây dựng hệ thống thời gian thực trong đó độ trễ là vấn đề quan trọng
  • Bạn muốn giảm thiểu khối lượng cuộc gọi API
  • Xây dựng microservice giải CAPTCHA

Phương pháp lai

Sử dụng lệnh gọi lại với dự phòng bỏ phiếu:

import requests
import time

API_KEY = "YOUR_API_KEY"
CALLBACK_URL = "https://your-server.com/captcha-callback"

def solve_with_fallback(site_key, page_url):
    # Try callback first
    resp = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": API_KEY,
        "method": "userrecaptcha",
        "googlekey": site_key,
        "pageurl": page_url,
        "pingback": CALLBACK_URL
    })
    task_id = resp.text.split("|")[1]

    # Wait for callback result (check your callback store)
    for _ in range(12):  # 60 seconds
        time.sleep(5)
        result = check_callback_store(task_id)
        if result:
            return result

    # Fallback to polling
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY, "action": "get", "id": task_id
    })
    if result.text.startswith("OK|"):
        return result.text.split("|")[1]

    raise TimeoutError()

Câu hỏi thường gặp

URL gọi lại có cần HTTPS không?

HTTPS được khuyên dùng để bảo mật nhưng HTTP cũng hoạt động. Nếu lệnh gọi lại của bạn xử lý dữ liệu nhạy cảm (mã thông báo), hãy sử dụng HTTPS.

Điều gì sẽ xảy ra nếu máy chủ gọi lại của tôi ngừng hoạt động khi có kết quả?

CaptchaAI có thể thử gọi lại. Là một mạng lưới an toàn, bạn luôn có thể quay lại việc thăm dò điểm cuối kết quả.

Tôi có thể sử dụng cùng một URL gọi lại cho nhiều tác vụ không?

Vâng. Mỗi lệnh gọi lại bao gồm tham số id để bạn có thể khớp kết quả với nhiệm vụ của chúng.

Hướng dẫn liên quan

Os comentários estão desativados para este artigo.

Postagens relacionadas

DevOps & Scaling Xây dựng giải quyết CAPTCHA theo sự kiện bằng AWS SNS và CaptchaAI
Hướng dẫn Dev Ops xây dựng giải pháp giải quyết tình huống CAPTCHA bằng AWS SNS và Captcha AI, với các quyết định về kiến ​​trúc, các cân nhắc vận hành và mô hì...

Hướng dẫn Dev Ops xây dựng giải pháp giải quyết tình huống CAPTCHA bằng AWS SNS và Captcha AI, với các quyết đ...

Apr 25, 2026
Comparisons Dịch vụ giải CAPTCHA tốt nhất được so sánh (2025)
So sánh thực tế Dịch vụ giải quyết CAPTCHA tốt nhất được so sánh (2025), tập trung vào sự khác biệt về chi phí, độ chính xác, tốc độ và nỗ lực tích hợp xung qua...

So sánh thực tế Dịch vụ giải quyết CAPTCHA tốt nhất được so sánh (2025), tập trung vào sự khác biệt về chi phí...

Apr 26, 2026
Tutorials Xây dựng hàng đợi giải CAPTCHA trong Node.js
Hướng dẫn từng bước để xây dựng hàng đợi giải mã CAPTCHA trong Node.js, với các ví dụ có thể sử dụng lại trực tiếp và quy trình làm việc Captcha AI rõ ràng.

Hướng dẫn từng bước để xây dựng hàng đợi giải mã CAPTCHA trong Node.js, với các ví dụ có thể sử dụng lại trực...

May 01, 2026