Explicaciones Técnicas

GeeTest v4: qué cambió frente a v3 y cómo resolverlo

¿Puede CaptchaAI resolver GeeTest v4? La respuesta corta: CaptchaAI resuelve GeeTest v3. No resuelve GeeTest v4. La v3, que CaptchaAI resuelve con una alta tasa de éxito, sigue siendo la versión más extendida en producción. Aun así, la v4 aparece en cada vez más sitios, así que conviene saber en qué se diferencia de la v3, cómo detectarla y dónde encaja CaptchaAI. Eso es lo que cubre esta guía.


GeeTest v3 frente a v4: qué cambió

Característica GeeTest v3 GeeTest v4
Inicialización gt + challenge del servidor Solo captcha_id
Parámetro de desafío Requerido en la llamada a la API Generado del lado del cliente
Tipos de desafío Deslizar, hacer clic Deslizar, clic, selección de iconos, razonamiento espacial
Validación El servidor devuelve challenge Usa lot_number + pass_token
Endpoint de la API api.geetest.com gcaptcha4.geetest.com
Escala de dificultad Fija Puntuación de riesgo adaptativa

En la práctica, estas diferencias tienen una consecuencia directa: el código que funcionaba con la v3 no sirve tal cual para la v4. Cambia el parámetro con el que arranca el desafío, cambian los tokens que valida el servidor y cambia incluso el dominio al que apunta el widget. Por eso el primer trabajo no es resolver, sino identificar bien la versión.


Los cuatro tipos de desafío de GeeTest v4

Rompecabezas deslizante

El desafío clásico: arrastras una pieza hasta encajarla en el hueco correcto.

Selección por clic

Haces clic sobre objetos concretos (por ejemplo, "haz clic en todas las caras"). Se apoya en reconocimiento de iconos.

Razonamiento espacial

Novedad de la v4: organizas varias formas siguiendo un patrón espacial. Es más complejo que cualquier desafío de la v3.

Coincidencia de iconos

Debes emparejar los iconos que aparecen en una secuencia. Cuesta más de automatizar a mano.

Sea cual sea el desafío que muestre la página, se trata de GeeTest v4, y CaptchaAI no puede resolverlo. CaptchaAI resuelve GeeTest v3.


Cómo detectar la versión en una página

El primer paso, siempre, es saber qué versión protege la página. Imagina que haces QA sobre el login de un marketplace regional o sobre un portal de cita previa: antes de integrar nada, extrae la configuración del CAPTCHA y comprueba si es v3 o v4. La v4 usa captcha_id en lugar del par gt + challenge, y carga el script gcaptcha4. Este fragmento con Selenium lo detecta:

# extract_geetest_v4.py
import re
from selenium import webdriver


def extract_geetest_v4_params(url):
    """Extract GeeTest v4 captcha_id from a page."""
    driver = webdriver.Chrome()
    driver.get(url)

    page_source = driver.page_source

    # GeeTest v4 uses captcha_id instead of gt
    match = re.search(r'captcha_id["\']?\s*[:=]\s*["\']([a-f0-9]+)', page_source)
    captcha_id = match.group(1) if match else None

    # Check for v4-specific script
    is_v4 = "gcaptcha4" in page_source or "gt4.js" in page_source

    driver.quit()

    return {
        "captcha_id": captcha_id,
        "is_v4": is_v4,
        "pageurl": url,
    }


# Usage
params = extract_geetest_v4_params("https://staging.example.com/qa-login")
print(f"Captcha ID: {params['captcha_id']}")
print(f"Is v4: {params['is_v4']}")

Dónde encaja CaptchaAI

CaptchaAI resuelve GeeTest v3. No resuelve GeeTest v4. Su método geetest recibe los valores de la v3 (gt, un challenge fresco y pageurl) y devuelve challenge, validate y seccode. No tiene parámetros para la v4, así que no envíes un captcha_id de la v4 como gt. Haz primero la comprobación anterior: si la página carga gcaptcha4.geetest.com o gt4.js, usa la v4 y CaptchaAI no puede resolverla. Si la página sigue usando la v3, Cómo resolver GeeTest v3 usando API recorre el flujo completo.

Como el resto de tipos, GeeTest v3 se factura por thread y no por resolución, así que un mismo plan absorbe los picos de volumen sin coste por CAPTCHA.


Cómo cambia la validación en la v4

En una página con la v3, superar el desafío da tres valores, geetest_challenge, geetest_validate y geetest_seccode, que el backend del sitio verifica con GeeTest. En una página con la v4, captchaObj.getValidate() devuelve en su lugar cuatro valores: lot_number, captcha_output, pass_token y gen_time. El backend del sitio los envía al endpoint /validate de la v4 en gcaptcha4.geetest.com, junto con su captcha_id y un sign_token firmado con su clave privada (documentación de GeeTest v4: API web y API de servidor). El código que lee o rellena los tres campos de la v3 no tiene nada con lo que trabajar en una página con la v4.


Errores frecuentes y cómo resolverlos

Cuando prepares o pruebes la integración, estos son los fallos que aparecen con más frecuencia:

Problema Causa Solución
La búsqueda de gt / challenge no encuentra nada en una página que antes funcionaba El sitio pasó a GeeTest v4, que no tiene un challenge emitido por el servidor Busca gcaptcha4.geetest.com o gt4.js en la página; de GeeTest, CaptchaAI solo resuelve la v3
ERROR_WRONG_CAPTCHA_ID de CaptchaAI gt o challenge no válidos, como un captcha_id de la v4 enviado como gt Envía el gt de la v3 de la página y un challenge fresco en cada solicitud
No se encuentra captcha_id Se renderiza por JavaScript Usa Selenium para extraerlo de la página ya renderizada

Preguntas frecuentes

¿Puede CaptchaAI resolver GeeTest v4?

No. CaptchaAI resuelve GeeTest v3 con una alta tasa de éxito. No resuelve GeeTest v4, así que no hay una tasa de éxito de la v4 que dar.

¿Cómo detecto si un sitio usa GeeTest v3 o v4?

Busca gcaptcha4.geetest.com o gt4.js en el código de la página: si aparecen, es v4. Si en cambio ves api.geetest.com y un parámetro challenge, estás ante la v3.

¿Es GeeTest v4 más difícil de resolver que la v3?

CaptchaAI resuelve GeeTest v3. No resuelve GeeTest v4, así que no hay datos de resolución que comparar. Para tu código, el cambio grande es estructural: la v4 no tiene un challenge emitido por el servidor y, al superarla, devuelve cuatro valores en lugar de tres, así que una integración de la v3 no se puede apuntar sin más a una página con la v4.

¿Qué tipos de desafío añade GeeTest v4 frente a v3?

Además del deslizamiento y el clic que ya existían en v3, la v4 suma el razonamiento espacial y la coincidencia de iconos, y aplica una dificultad adaptativa según la puntuación de riesgo de cada visita.


Guías relacionadas


Resuelve GeeTest v3 con CaptchaAI. CaptchaAI no resuelve GeeTest v4.

Los comentarios están deshabilitados para este artículo.