Skip to content
API
Geetest Captcha

Geetest Image Captcha

अवलोकन

Geetest चीन और एशियाई देशों में एक लोकप्रिय कैप्चा प्रणाली है, जो पहेली खींचने और छवि पहचान जैसी इंटरैक्टिव चुनौतियों का उपयोग करती है। हम ब्राउज़र, सिमुलेटर और फोन फ़ार्म पर सभी प्रकार के Geetest Image (Geetest v3, Geetest v4, ...) को हल करने के लिए सेवाएँ प्रदान करते हैं।

🧩

यह दस्तावेज़ आपको Geetest Captcha को संभालने में मार्गदर्शन करता है जिसके लिए उपयोगकर्ताओं को पृष्ठभूमि छवि पर क्रम में वस्तुओं को पहचानने और क्लिक करने की आवश्यकता होती है। ड्रैग-टाइप कैप्चा के लिए, कृपया Tiktok Captcha ड्रैग टाइप के निर्देशों का पालन करें।

Geetest Captcha

1. कार्य बनाएँ

छवि सबमिशन प्रारूप

नीचे दिखाए अनुसार आइकन छवियों और पृष्ठभूमि छवियों को अलग करें Click Image Sample

अनुरोध

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

पैरामीटर्स

पैरामीटर नामडेटा प्रकारआवश्यक?विवरण
clientKeystringहाँApi key
task.typestringहाँGeetestImageCaptchaTask
task.imagestringहाँसिद्धांत का पालन करते हुए base64 छवियों की सूची: icon_1|icon_2|...|icon_n|background (| द्वारा अलग की गई Base64 स्ट्रिंग्स)
task.subTypeintहाँकैप्चा प्रकार: 7: क्रम में वस्तुओं का चयन करें

अनुरोध उदाहरण

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
  }
}

नोट: image पैरामीटर आइकन और पृष्ठभूमि छवियों की एक base64 स्ट्रिंग होनी चाहिए, जो | द्वारा अलग की गई हो। क्रम: icon_1|icon_2|icon_3|...|background

प्रतिक्रिया

सफल होने पर, सर्वर errorId = 0 और taskId लौटाता है

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

2. परिणाम प्राप्त करें

अनुरोध

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

पैरामीटर्स

पैरामीटर नामडेटा प्रकारआवश्यक?विवरण
clientKeystringहाँApi key
taskIdstringहाँ(1) से प्राप्त TaskId

अनुरोध उदाहरण

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

प्रतिक्रिया

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

स्थिति स्पष्टीकरण

  • errorId = 0 और status = ready: सफलतापूर्वक हल किया गया, solution में परिणाम पढ़ें
  • errorId = 1 और status = processing: कैप्चा हल किया जा रहा है, 1-2 सेकंड प्रतीक्षा करें और पुनः प्रयास करें
  • errorId 0 और 1 के अलावा: सिस्टम त्रुटि, त्रुटि कोड और विवरण लौटाता है

परिणाम का अर्थ

  • solution: कैप्चा पर क्लिक करने के लिए निर्देशांक लौटाता है, प्रारूप x1,y1,x2,y2,x3,y3,...
    • प्रत्येक जोड़ी (x, y) पृष्ठभूमि छवि पर क्लिक करने के लिए पिक्सेल निर्देशांक का प्रतिनिधित्व करती है
    • क्लिक क्रम प्रदर्शित आइकन के क्रम से मेल खाता है

एकीकरण उदाहरण

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 |
    
    # Step 1: Create task
    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']
    
    # Step 2: Get result
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Wait 2 seconds
        
        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"
        
        # If status == 'processing', continue loop
 
# Usage
# Assume you have base64 images
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"
 
# Parse coordinates and use
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})')
    # Perform click at coordinates (x, y)

सामान्य त्रुटि कोड

त्रुटि कोडविवरणनोट्स
0successसफलता
1processingप्रसंस्करण
2missing required fieldsआवश्यक फ़ील्ड गायब है, पैरामीटर फिर से जाँचें
3task not supportedकार्य प्रकार समर्थित नहीं है
4task creation failedकार्य निर्माण विफल
5client key does not existAPI कुंजी मौजूद नहीं है, API कुंजी फिर से जाँचें
6insufficient account balanceअपर्याप्त खाता शेष, क्रेडिट टॉप अप करें
7task failed, please create a new taskकार्य विफल, कृपया एक नया कार्य बनाएँ
8task ID does not existकार्य ID मौजूद नहीं है

सर्वोत्तम प्रथाएँ

Geetest Image के लिए Achicaptcha API का उपयोग करते समय सर्वोत्तम परिणामों के लिए, इन सिद्धांतों का पालन करें:

1. सही प्रारूप में चित्र तैयार करें

  • सभी छवियों को base64 में एन्कोड किया जाना चाहिए
  • छवि क्रम: icon_1|icon_2|...|icon_n|background
  • Base64 छवियों को | वर्ण द्वारा अलग किया जाता है
  • सुनिश्चित करें कि पृष्ठभूमि छवि स्ट्रिंग में अंतिम है

2. परिणामों का सही उपयोग करें

  • लौटाया गया परिणाम एक निर्देशांक स्ट्रिंग है: x1,y1,x2,y2,x3,y3,...
  • प्रत्येक जोड़ी (x, y) पृष्ठभूमि छवि पर पिक्सेल निर्देशांक है
  • क्लिक क्रम प्रदर्शित आइकन के क्रम से मेल खाता है
  • कैप्चा पूरा करने के लिए निर्देशांक पर सटीक रूप से क्लिक करें

3. पोलिंग अंतराल

  • परिणाम जाँचों के बीच कम से कम 1-2 सेकंड प्रतीक्षा करें
  • बहुत अधिक लगातार अनुरोधों के साथ API को स्पैम न करें
  • अनंत लूप से बचने के लिए टाइमआउट सेट करें (60 सेकंड अनुशंसित)

4. त्रुटि प्रबंधन

  • प्रसंस्करण स्थिति के लिए errorId = 1 की जाँच करें
  • अस्थायी त्रुटियों (errorId = 6, 7) के लिए पुनः प्रयास करें
  • यदि वर्तमान कार्य विफल हो जाता है तो नया कार्य बनाएँ
  • अधिकतम पुनः प्रयास प्रयासों को सीमित करें

5. API कुंजी सुरक्षा

  • कोड में API कुंजी को हार्डकोड न करें
  • पर्यावरण चर (environment variables) का उपयोग करें
  • क्लाइंट-साइड पर API कुंजी को उजागर न करें
  • बैकएंड/सर्वर से API कॉल करें

उपयोगी लिंक: