Skip to content
API
Geetest Captcha

Geetest Image Captcha

Pangkalahatang-ideya

Ang Geetest ay isang sikat na sistema ng captcha sa China at mga bansa sa Asya, na gumagamit ng mga interactive na hamon tulad ng pag-drag ng puzzle at pagkilala ng imahe. Nagbibigay kami ng mga serbisyo upang malutas ang lahat ng uri ng Geetest Image (Geetest v3, Geetest v4, ...) sa mga browser, simulator, at phone farm.

🧩

Ang dokumentasyong ito ay gumagabay sa iyo sa paghawak ng Geetest Captcha na nangangailangan ng mga user na tukuyin at i-click ang mga bagay nang sunud-sunod sa background image. Para sa drag-type captcha, mangyaring sundin ang mga tagubilin para sa Tiktok Captcha drag type.

Geetest Captcha

1. Lumikha ng Gawain

Format ng Pagsusumite ng Imahe

Paghiwalayin ang mga icon image at background image tulad ng ipinapakita sa ibaba Click Image Sample

Request

POST https://api.achicaptcha.com/createTask

Mga Parameter

Pangalan ng ParameterUri ng DataKailangan?Paglalarawan
clientKeystringooApi key
task.typestringooGeetestImageCaptchaTask
task.imagestringooListahan ng mga base64 image na sumusunod sa prinsipyo: icon_1|icon_2|...|icon_n|background (Base64 strings na pinaghihiwalay ng |)
task.subTypeintooUri ng Captcha: 7: Pumili ng mga bagay ayon sa pagkakasunod-sunod

Halimbawa ng Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeetestImageCaptchaTask",
    "image": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT...|/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT...|/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT...",
    "subType": 7
  }
}

Tandaan: Ang parameter na image ay dapat na isang base64 string ng mga icon at background image, na pinaghihiwalay ng |. Pagkakasunod-sunod: icon_1|icon_2|icon_3|...|background

Response

Kapag matagumpay, ibabalik ng server ang errorId = 0 at taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Kunin ang Resulta

Request

POST https://api.achicaptcha.com/getTaskResult

Mga Parameter

Pangalan ng ParameterUri ng DataKailangan?Paglalarawan
clientKeystringooApi key
taskIdstringooTaskId na nakuha mula sa (1)

Halimbawa ng Request

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Response

{
  "errorId": 0,
  "status": "ready",
  "solution": "x1,y1,x2,y2,x3,y3"
}

Paliwanag sa Status

  • errorId = 0 at status = ready: Matagumpay na nalutas, basahin ang resulta sa solution
  • errorId = 1 at status = processing: Nilulutas ang captcha, maghintay ng 1-2 segundo at subukang muli
  • errorId bukod sa 0 at 1: Error sa system, nagbabalik ng error code at paglalarawan

Kahulugan ng Resulta

  • solution: Nagbabalik ng mga coordinate upang i-click sa captcha, format x1,y1,x2,y2,x3,y3,...
    • Ang bawat pares (x, y) ay kumakatawan sa mga pixel coordinate upang i-click sa background image
    • Ang pagkakasunod-sunod ng pag-click ay tumutugma sa pagkakasunod-sunod ng mga ipinapakitang icon

Mga Halimbawa ng Integrasyon

import requests
import time
 
def solve_geetest_image(base64_images, sub_type=7, api_key='YOUR_API_KEY'):
    # base64_images: "icon1|icon2|icon3|background" - base64 string separated by |
    
    # Hakbang 1: Lumikha ng gawain
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'GeetestImageCaptchaTask',
            'image': base64_images,
            'subType': sub_type
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Hakbang 2: Kunin ang resulta
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Maghintay ng 2 segundo
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] not in [0, 1]:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']  # "x1,y1,x2,y2,x3,y3"
        
        # Kung status == 'processing', ipagpatuloy ang loop
 
# Paggamit
# Ipagpalagay na mayroon kang mga base64 image
icon1_base64 = '/9j/4AAQSkZJRgABAQEASABIAAD...'
icon2_base64 = '/9j/4AAQSkZJRgABAQEASABIAAD...'
icon3_base64 = '/9j/4AAQSkZJRgABAQEASABIAAD...'
background_base64 = '/9j/4AAQSkZJRgABAQEASABIAAD...'
 
base64_images = f'{icon1_base64}|{icon2_base64}|{icon3_base64}|{background_base64}'
solution = solve_geetest_image(base64_images, 7, 'YOUR_API_KEY')
print('Geetest coordinates:', solution)  # "x1,y1,x2,y2,x3,y3"
 
# I-parse ang mga coordinate at gamitin
coords = [int(c) for c in solution.split(',')]
for i in range(0, len(coords), 2):
    x, y = coords[i], coords[i + 1]
    print(f'Click at ({x}, {y})')
    # Magsagawa ng pag-click sa mga coordinate (x, y)

Karaniwang Error Codes

Error CodePaglalarawanMga Tala
0successTagumpay
1processingPinoproseso
2missing required fieldsKulang ang mga kinakailangang field, suriin muli ang mga parameter
3task not supportedHindi suportado ang uri ng gawain
4task creation failedNabigo ang paglikha ng gawain
5client key does not existHindi umiiral ang API key, suriin muli ang API key
6insufficient account balanceHindi sapat ang balanse ng account, magdagdag ng credits
7task failed, please create a new taskNabigo ang gawain, mangyaring lumikha ng bagong gawain
8task ID does not existHindi umiiral ang Task ID

Pinakamahuhusay na Kasanayan

Para sa pinakamahusay na mga resulta kapag gumagamit ng Achicaptcha API para sa Geetest Image, sundin ang mga prinsipyong ito:

1. Ihanda ang mga Imahe sa Tamang Format

  • Ang lahat ng mga imahe ay dapat na naka-encode sa base64
  • Pagkakasunod-sunod ng imahe: icon_1|icon_2|...|icon_n|background
  • Ang mga base64 image ay pinaghihiwalay ng | character
  • Tiyaking ang background image ay ang huli sa string

2. Gamitin ang mga Resulta nang Tama

  • Ang resultang ibinalik ay isang coordinate string: x1,y1,x2,y2,x3,y3,...
  • Ang bawat pares (x, y) ay mga pixel coordinate sa background image
  • Ang pagkakasunod-sunod ng pag-click ay tumutugma sa pagkakasunod-sunod ng mga ipinapakitang icon
  • Mag-click nang tumpak sa mga coordinate upang makumpleto ang captcha

3. Interval ng Polling

  • Maghintay ng hindi bababa sa 1-2 segundo sa pagitan ng mga pagsusuri ng resulta
  • Huwag i-spam ang API ng masyadong maraming magkakasunod na kahilingan
  • Magtakda ng timeout upang maiwasan ang mga infinite loop (inirerekomenda ang 60 segundo)

4. Paghawak ng Error

  • Suriin ang errorId = 1 para sa status ng pagproseso
  • Mag-retry para sa mga pansamantalang error (errorId = 6, 7)
  • Lumikha ng bagong gawain kung nabigo ang kasalukuyang gawain
  • Limitahan ang maximum na mga pagsubok sa pag-retry

5. Seguridad ng API Key

  • Huwag i-hardcode ang API key sa code
  • Gumamit ng mga environment variable
  • Huwag ilantad ang API key sa client-side
  • Tumawag sa API mula sa backend/server

Mga Kapaki-pakinabang na link: