Sorun Giderme

Yaygın GeeTest v3 Hataları ve Düzeltmeleri

Çoğu GeeTest v3 hatası üç gruptan birine girer: istek aşaması hataları (API'ye gönderme), sonuç aşaması hataları (cevap için yoklama) ve hedef sayfa doğrulama hataları (API değerleri döndürür ancak sayfa bunları hâlâ reddeder). GeeTest'e özgü en büyük sorun neredeyse her zaman aynıdır: eski bir challenge değeri.

CaptchaAI'lerGeeTest v3 API belgeleriaçıktır: her çözüm isteği için yeni bir challenge değeri almalısınız. Captcha sayfaya yüklendiğinde eski meydan okuma geçersiz hale gelir. Bu, istek çoğunlukla doğru görünse bile GeeTest entegrasyonunun başarısız olabileceği anlamına gelir.

Bu kılavuz, tüm yaygın arıza modellerini ve her biri için en hızlı düzeltmeyi açıklamaktadır.


1 numaralı GeeTest hatası: eski challenge

İlk önce kontrol edilmesi gereken bir şey varsa o da tazeliğe meydan okumaktır.

GeeTest v3 iki temel parametre gerektirir:

  • gt — genel web sitesi anahtarı (statik, değişmez)
  • challenge — dinamik meydan okuma anahtarı (her sayfa yüklemesinde değişir)

Neden kırılıyor

challenge değeri, GeeTest widget'ı sayfada başlatıldığında oluşturulur. Bunu bir kez yakalar ve birden fazla çözüm isteğinde yeniden kullanırsanız, ilk istekten sonraki her istek:

  • gönderim sırasında API tarafından reddedilebilir veya
  • sorgulamanın süresi dolduğu için hedef sayfanın reddettiği bir sonuç üretmek

Nasıl düzeltilir?

Her çözüm isteğinden önce, yeni bir challenge döndüren API çağrısını bulmak için sayfanın ağ isteklerini inceleyin. Yeni bir değer elde etmek için bu isteği tekrar yürütün ve ardından hemen CaptchaAI'ye gönderin.

# Pseudocode: fetch a fresh challenge before each solve
import requests

def get_fresh_challenge(target_url):
    """Hit the GeeTest init endpoint to get a new challenge."""
    resp = requests.get(f"{target_url}/geetest/register", timeout=10)
    data = resp.json()
    return data["challenge"], data["gt"]

challenge, gt = get_fresh_challenge("https://example.com")
# Now submit to CaptchaAI immediately — do not delay

Genel kural: challenge'nin yakalanması ile çözüm isteğinin gönderilmesi arasındaki süre birkaç saniyeden fazlaysa yenileyin.


İstek aşaması hataları

Bu hatalar, görevi https://ocr.captchaai.com/in.php'ye gönderdiğinizde meydana gelir.

ERROR_WRONG_USER_KEY

Neden: API anahtarı biçimi hatalı (32 karakter olmalıdır).

Düzeltme: Anahtarı şuradan doğrulayın:captchaai.com/api.php. Fazladan karakter veya boşluk eklemeyin.

ERROR_KEY_DOES_NOT_EXIST

Neden: API anahtarı doğru biçimlendirilmiş ancak hiçbir etkin hesapla eşleşmiyor.

Düzeltme: CaptchaAI kontrol panelinizde oturum açın ve anahtarınızın etkin olduğunu doğrulayın.

ERROR_ZERO_BALANCE

Neden: Mevcut planınızda ücretsiz konu yok.

Düzeltme: İş parçacıklarının serbest kalmasını, eşzamanlılığın azalmasını veya planınızı yükseltmesini bekleyin.

ERROR_PAGEURL

Neden: İstekte pageurl parametresi eksik.

Düzeltme: GeeTest widget'ının yüklendiği sayfanın tam URL'sini ekleyin. Örnek:

pageurl=https://staging.example.com/qa-login

ERROR_BAD_PARAMETERS

Neden: Bir veya daha fazla zorunlu alan eksik veya hatalı biçimlendirilmiş. GeeTest için gerekli parametreler şunlardır:

Parametre Tür Gerekli Açıklama
key Dize Evet CaptchaAI API anahtarınız
method Dize Evet geetest olmalı
gt Dize Evet Statik genel web sitesi anahtarı
challenge Dize Evet Dinamik mücadele anahtarı (yeni olmalı)
pageurl Dize Evet Tam sayfa URL'si

Düzeltme: gt, challenge ve pageurl'nin mevcut ve doğru biçimlendirilmiş olduğundan emin olun.

HTML veya 500/502 yanıtları

Neden: Geçici sunucu tarafı hatası — parametre sorunu değil.

Düzeltme: 5-10 saniye bekleyip isteği yeniden deneyin.


Sonuç aşaması hataları

Bu hatalar https://ocr.captchaai.com/res.php'yi yokladığınızda meydana gelir.

CAPCHA_NOT_READY

Bu bir hata değildir. Bu, captcha'nın hâlâ çözülmekte olduğu anlamına gelir. GeeTest v3, CaptchaAI'de %100 başarı oranıyla genellikle 12 saniyeden kısa sürer.

Düzeltme: 5 saniye bekleyip tekrar anket yapın. Bunu bir başarısızlık olarak görmeyin.

ERROR_WRONG_ID_FORMAT

Neden: Captcha kimlik biçimi yanlış — Kimlikler yalnızca sayısal olmalıdır.

Düzeltme: in.php tarafından döndürülen kimliğin aynısını hiçbir değişiklik yapmadan kullandığınızı doğrulayın.

ERROR_WRONG_CAPTCHA_ID

Neden: Kimlik, gönderilen hiçbir görevle eşleşmiyor.

Düzeltme: Gönderim yanıtındaki doğru kimliği kullandığınızdan emin olun. Birden fazla görev gönderdiyseniz doğru olanı yokladığınızdan emin olun.

ERROR_EMPTY_ACTION

Neden: Anket isteğinizde action parametresi eksik veya boş.

Düzeltme: Her anket isteğine action=get'yi ekleyin:

https://ocr.captchaai.com/res.php?key=YOUR_KEY&action=get&id=CAPTCHA_ID

ERROR_CAPTCHA_UNSOLVABLE

Neden: Muhtemelen eski bir challenge değeri veya desteklenmeyen bir GeeTest değişkeni nedeniyle sorun çözülemedi.

Düzeltme: challenge değerini yenileyin ve yeniden deneyin.

ERROR_INTERNAL_SERVER_ERROR

Neden: CaptchaAI'de sunucu tarafı sorunu.

Düzeltme: 10 saniye bekleyip yeniden deneyin.


Hedef sayfa doğrulama hataları

Bunlar hata ayıklaması en zor hatalardır çünkü CaptchaAI API geçerli bir sonuç döndürür, ancak hedef sayfa bunu hâlâ reddeder.

GeeTest v3 çözümü başarılı olduğunda API üç değer döndürür:

{
  "challenge": "1a2b3456cd67890e12345fab678901c2de",
  "validate": "09fe8d7c6ba54f32e1dcb0a9fedc8765",
  "seccode": "12fe3d4c56789ba01f2e345d6789c012|jordan"
}

Bunlar hedef sayfaya şu şekilde gönderilmelidir:

API yanıt alanı Hedef sayfa alanı
challenge geetest_challenge
validate geetest_validate
seccode geetest_seccode

Hata 1: Yanlış alan eşlemesi

Belirti: API değerleri döndürüyor ancak hedef sayfa bunları hemen reddediyor.

Neden: Döndürülen değerler yanlış alanlara veya yanlış istek yoluna eklenmiş.

Düzeltme: Hedef sayfadaki manuel GeeTest çözümünden ağ trafiğini inceleyin. GeeTest sonucunu gönderen ve alan adlarınızla tam olarak eşleşen POST isteğini bulun.

Arıza 2: Eski challenge yukarı akışta kullanıldı

Belirti: API değerleri döndürüyor ancak sayfada, sorgulamanın süresinin dolduğu veya geçersiz olduğu belirtiliyor.

Neden: challenge değeri çok erken yakalandı veya yeniden kullanıldı.

Düzeltme: Her çözüm isteğinden hemen önce yeni bir challenge alın. Önbelleğe almayın veya yeniden kullanmayın.

Hata 3: Yanlış sayfa içeriği

Belirti: Doğrulama, yeni girişlerle bile başarısız oluyor.

Neden: CaptchaAI'ye gönderilen pageurl, GeeTest widget'ının yüklendiği gerçek sayfayla eşleşmiyor.

Düzeltme: Protokol ve yol da dahil olmak üzere tam URL'yi kullanın. Widget AJAX aracılığıyla farklı bir rotaya yüklendiyse o rotanın URL'sini kullanın.

Hata 4: İstek-yapı uyumsuzluğu

Belirti: Alanlar doğru ancak istek biçimi yanlış.

Neden: Hedef sayfa, GeeTest alanlarının belirli bir içerik türünde (ör. JSON gövdesi veya form kodlu) veya diğer form alanlarının yanında olmasını bekler.

Düzeltme: Gönderim isteğinizi manuel çözümden elde edilen ağ trafiğiyle karşılaştırın. İçerik türünü, alan sırasını ve varsa ek alanları eşleştirin.


Hızlı hata düzeltme referansı

Hata / Belirti Sahne Muhtemel sebep Düzeltme
ERROR_WRONG_USER_KEY Gönder Hatalı biçimlendirilmiş API anahtarı 32 karakterli anahtarı doğrulayın
ERROR_KEY_DOES_NOT_EXIST Gönder Geçersiz anahtar Kontrol panelini kontrol edin
ERROR_ZERO_BALANCE Gönder Ücretsiz konu yok Bekleyin veya planı yükseltin
ERROR_PAGEURL Gönder pageurl eksik Tam sayfa URL'sini ekleyin
ERROR_BAD_PARAMETERS Gönder Eksik gt, challenge veya pageurl Gerekli tüm alanları doğrulayın
CAPCHA_NOT_READY Anket Çözüm devam ediyor 5 saniye bekleyip tekrar deneyin
ERROR_WRONG_ID_FORMAT Anket Sayısal olmayan captcha kimliği in.php'den tam kimliği kullanın
ERROR_WRONG_CAPTCHA_ID Anket Geçersiz captcha kimliği Gönderim kimliğini doğrulayın
ERROR_EMPTY_ACTION Anket action=get eksik Eylem parametresi ekle
ERROR_CAPTCHA_UNSOLVABLE Anket Eski zorluk veya desteklenmeyen değişken Mücadeleyi yenileyin, yeniden deneyin
API değerleri döndürüyor ancak sayfa reddediyor Doğrulama Eski meydan okuma, yanlış alanlar, yanlış URL Mücadeleyi yenileyin, alan eşlemesini doğrulayın

Python: GeeTest v3 çözümünü yeni zorluklarla tamamlayın

import time
import requests

API_KEY = "YOUR_CAPTCHAAI_API_KEY"

SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"


def get_fresh_challenge(target_url):
    """Fetch a fresh GeeTest challenge from the target page."""
    resp = requests.get(f"{target_url}/api/geetest/register", timeout=10)
    data = resp.json()
    return data["gt"], data["challenge"]


def solve_geetest_v3(api_key, gt, challenge, pageurl):
    """Submit a GeeTest v3 challenge and return the validation package."""

    # Submit
    submit_resp = requests.post(
        SUBMIT_URL,
        data={
            "key": api_key,
            "method": "geetest",
            "gt": gt,
            "challenge": challenge,
            "pageurl": pageurl,
            "json": 1,
        },
        timeout=30,
    )
    submit_resp.raise_for_status()
    submit_data = submit_resp.json()

    if submit_data.get("status") != 1:
        raise RuntimeError(f"Submit failed: {submit_data}")

    captcha_id = submit_data["request"]
    print(f"Task created — captcha ID: {captcha_id}")

    # Wait before first poll
    time.sleep(15)

    # Poll for result
    for _ in range(60):
        result_resp = requests.get(
            RESULT_URL,
            params={
                "key": api_key,
                "action": "get",
                "id": captcha_id,
                "json": 1,
            },
            timeout=30,
        )
        result_resp.raise_for_status()
        result_data = result_resp.json()

        if result_data.get("request") == "CAPCHA_NOT_READY":
            time.sleep(5)
            continue

        if result_data.get("status") == 1:
            return result_data["request"]

        raise RuntimeError(f"Polling error: {result_data}")

    raise TimeoutError("GeeTest v3 solve timed out")


# Usage: always fetch a fresh challenge first
PAGE_URL = "https://staging.example.com/qa-login"
gt, challenge = get_fresh_challenge(PAGE_URL)
result = solve_geetest_v3(API_KEY, gt, challenge, PAGE_URL)
print(f"Result: {result}")

# The result contains: challenge, validate, seccode
# Map them to: geetest_challenge, geetest_validate, geetest_seccode

Node.js: GeeTest v3 çözümünü yeni zorluklarla tamamlayın

const API_KEY = "YOUR_CAPTCHAAI_API_KEY";
const SUBMIT_URL = "https://ocr.captchaai.com/in.php";
const RESULT_URL = "https://ocr.captchaai.com/res.php";

function sleep(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

async function getFreshChallenge(targetUrl) {
  const resp = await fetch(`${targetUrl}/api/geetest/register`);
  const data = await resp.json();
  return { gt: data.gt, challenge: data.challenge };
}

async function solveGeetestV3(apiKey, gt, challenge, pageurl) {
  // Submit
  const submitResp = await fetch(SUBMIT_URL, {
    method: "POST",
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    body: new URLSearchParams({
      key: apiKey,
      method: "geetest",
      gt: gt,
      challenge: challenge,
      pageurl: pageurl,
      json: "1",
    }),
  });

  const submitData = await submitResp.json();
  if (submitData.status !== 1) {
    throw new Error(`Submit failed: ${JSON.stringify(submitData)}`);
  }

  const captchaId = submitData.request;
  console.log(`Task created — captcha ID: ${captchaId}`);

  await sleep(15_000);

  // Poll for result
  for (let i = 0; i < 60; i++) {
    const resultResp = await fetch(
      `${RESULT_URL}?${new URLSearchParams({
        key: apiKey,
        action: "get",
        id: captchaId,
        json: "1",
      })}`
    );

    const resultData = await resultResp.json();

    if (resultData.request === "CAPCHA_NOT_READY") {
      await sleep(5_000);
      continue;
    }

    if (resultData.status === 1) {
      return resultData.request;
    }

    throw new Error(`Polling error: ${JSON.stringify(resultData)}`);
  }

  throw new Error("GeeTest v3 solve timed out");
}

// Usage
const PAGE_URL = "https://staging.example.com/qa-login";

(async () => {
  const { gt, challenge } = await getFreshChallenge(PAGE_URL);
  const result = await solveGeetestV3(API_KEY, gt, challenge, PAGE_URL);
  console.log("Result:", result);
  // Map result fields to: geetest_challenge, geetest_validate, geetest_seccode
})();

SSS

İstek doğru görünse bile GeeTest neden başarısız olmaya devam ediyor?

En yaygın neden, eski bir challenge değeridir. gt ve pageurl doğru olsa bile, süresi dolmuş bir sorgulama API'nin başarısız olmasına veya hedef sayfanın döndürülen değerleri reddetmesine neden olur. Her çözüm talebinden hemen önce daima yeni bir meydan okuma getirin.

En yaygın GeeTest v3 hatası nedir?

Artık yeni olmayan bir challenge değerinin yeniden kullanılması. CaptchaAI belgeleri, captcha sayfaya yüklendiğinde eski sorgulamanın geçersiz hale geleceği konusunda açıkça uyarıyor.

CAPCHA_NOT_READY ne anlama geliyor?

Bu, bir hata değil, çözümün hâlâ devam ettiği anlamına gelir. 5 saniye bekleyin ve res.php'yi tekrar sorgulayın. GeeTest v3'nin CaptchaAI'de çözülmesi genellikle 12 saniyenin altında sürer.

API değerleri döndürdüğü halde sayfa bunları hâlâ reddediyorsa ne yapmalıyım?

Üç şeyi sırayla kontrol edin:

  1. Yeniliğe meydan okuyunchallenge gönderilmeden hemen önce mi getirildi?
  2. Alan eşlemegeetest_challenge, geetest_validate ve geetest_seccode, hedef sayfanın beklenen alanlarıyla doğru şekilde eşlendi mi?
  3. İstek yapısı — Hedef sayfa JSON, form kodlu veriler veya başka bir format bekliyor mu? Manuel çözümün ağ trafiğiyle karşılaştırın.

GeeTest v3'nin reCAPTCHA v2'den farkı nedir?

GeeTest v3 bir bulmaca/slider mücadelesidir (onay kutusu değil). Her çözüm için yenilenmesi gereken dinamik bir challenge parametresi gerektirir. API, tek bir belirteç yerine üç doğrulama alanı (challenge, validate, seccode) döndürür. reCAPTCHA v2 çözümü için bkz.API Kullanarak reCAPTCHA v2 Nasıl Çözülür?.

CaptchaAI, GeeTest v4'yi destekliyor mu?

Bu makale yalnızca GeeTest v3'yi kapsamaktadır. Kontrol edinCaptchaAI API belgeleridesteklenen en son captcha türleri için.


GeeTest iş akışınızı düzeltin

GeeTest entegrasyonunuz başarısız oluyorsa:

  1. Meydan okumayı kontrol edin — Taze mi? Her çözümden hemen önce yeni bir tane getirin.
  2. Parametreleri doğrulayıngt, challenge, pageurl'nin tümü doğru olmalıdır.
  3. Alan eşlemesini inceleyin — Döndürülen challenge, validate ve seccode doğru alanlara girmelidir.
  4. Manuel çözümle karşılaştırın — Başarılı bir manuel GeeTest çözümünden tam istek yapısını yakalamak için tarayıcı DevTools'u kullanın.

Şununla başla:CaptchaAI GeeTest v3 çözücü, parametrelerinizi şuna göre onaylayın:API belgelerive okuGeeTest v3 Captcha Nasıl Çalışır?Mücadele akışı hakkında arka plana ihtiyacınız varsa.


Yineleme günlüğü

Yineleme Odaklanma Değişiklikler
Taslak 1 Yapı ve içerik İlk sorun giderme taslağı — 3 hata aşaması, hata düzeltme tablosu, SSS
Taslak 2 Teknik doğruluk Tüm hata kodları ve GeeTest parametreleri captchaai.com/api-docs. ile doğrulandı. API parametre tablosu eklendi. Onaylanan zorluk/validate/seccode alan eşlemesi.
Taslak 3 Kod örnekleri Yeni zorluklarla dolu Python ve Node.js örnekleri eklendi. Mücadele yenileme modeli için sahte kod eklendi.
Taslak 4 Doğrulama hatalarının derinliği 4 farklı hata moduyla genişletilmiş hedef sayfa doğrulama bölümü. Alan eşleme tablosu eklendi. İstek yapısı uyumsuzluğu tanısı eklendi.
Taslak 5 Nihai QA cilası Tüm hata kodlarının resmi belgelerle eşleştiği doğrulandı. Hızlı başvuru tablosu eklendi. Giriş kısmı sıkılaştırıldı. Küme makalelerine çapraz bağlantılar eklendi. Onaylanmış SSS yanıtları şemaya hazırdır.

Görsel varlık özeti

Kahraman resmi

  • Alternatif metin: Geliştiricinin GeeTest v3 hatalarını gidermesi — istek, yoklama ve doğrulama hatası teşhisi
  • Gösterilmelidir: Hata akış aşamaları ve hata noktalarıyla birlikte hata ayıklama bağlamı
  • Dosya adı: geetest-v3-errors-troubleshooting-hero.png

Yazı içi görsel 1

  • Yerleşim: "Sonuç aşaması hataları"ndan sonra
  • Tür: Karar ağacı
  • Alternatif metin: GeeTest v3 hataları için karar ağacı — istek hataları, yoklama hataları ve doğrulama hataları
  • Dosya adı: geetest-v3-error-decision-tree.png

Yazı içi görsel 2

  • Yerleşim: "Hedef sayfa doğrulama hataları"ndan sonra
  • Tür: Nedenler ve düzeltmeler şeması
  • Alternatif metin: GeeTest v3 sayfa reddinin yaygın nedenlerini ve bunların düzeltmelerini gösteren diyagram
  • Dosya adı: geetest-v3-validation-causes-fixes.png

İlgili Makaleler

Bu makale için yorumlar devre dışı bırakılmıştır.