UNLOCK API
GeeTest v3 / v4

GeeTest v3 / v4

كيف ترسل مهمة GeeTest v3 / v4 إلى UNLOCK API عبر createTask أو in.php: أسماء نوع المهمة، وكل معامل، وكائن solution، وحقول البروكسي، وأمثلة كود بـ 7 لغات.
السعر
$0.70 $0.0007 لكل مهمة
ترسل
رابط الصفحة مع gt وchallenge (v3) أو captcha_id (v4)
تستلم
القيم التي يرسلها نموذج GeeTest

نظرة عامة والسعر

أسماء نوع المهمة

استخدم الاسم الأول للحل بدون بروكسي. استخدم الاسم الثاني وأضف حقول البروكسي للحل عبر البروكسي الخاص بك. السعر نفسه.
GeeTestTaskProxylessبدون بروكسي
GeeTestTaskعبر البروكسي الخاص بك

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. GeeTestTaskProxyless | GeeTestTask
websiteURL
Stringمطلوب
العنوان الكامل للصفحة التي تظهر فيها الكابتشا، يبدأ بـ http:// أو https://.
gt
Stringاختياري
GeeTest v3: قيمة gt من الصفحة.
challenge
Stringاختياري
GeeTest v3: قيمة challenge جديدة. احصل على قيمة جديدة لكل مهمة.
geetestApiServerSubdomain
Stringاختياري
خادم API لـ GeeTest، إن كانت الصفحة تستخدم خادمها الخاص.
version
Integerاختياري
4 لـ GeeTest v4. الافتراضي 3.
initParameters
Objectاختياري
GeeTest v4: كائن يحتوي على captcha_id.
userAgent
Stringاختياري
قيمة User-Agent للمتصفح المستخدمة أثناء الحل. أرسل القيمة نفسها عند إرسال الإجابة.

الحقول غير المذكورة هنا تُمرر إلى الحلّال كما أُرسلت.

حقول البروكسي

لاسم النوع الذي يستخدم البروكسي فقط. أرسل الحقول المنفصلة أو سلسلة proxy واحدة.
proxyType
Stringمطلوب
http أو https أو socks4 أو socks5.
proxyAddress
Stringمطلوب
عنوان IP للبروكسي أو اسم المضيف.
proxyPort
Integerمطلوب
منفذ البروكسي.
proxyLogin
Stringاختياري
اسم مستخدم البروكسي، إن كان البروكسي يتطلبه.
proxyPassword
Stringاختياري
كلمة مرور البروكسي، إن كان البروكسي يتطلبها.
proxy
String
كل حقول البروكسي في سلسلة واحدة، مثلًا http://user:pass@1.2.3.4:8080.

استخدام البروكسي

الطلب

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeeTestTaskProxyless",
    "websiteURL": "https://example.com/login",
    "gt": "81388ea1fc187e0c335c0a8907ff2625",
    "challenge": "2e2f0f65240058b683cb6ea21c303eea"
  }
}

كائن solution

يُرجع في solution عندما تكون status هي ready.
challenge
String
قيمة challenge لـ GeeTest v3 المطلوب إرسالها.
validate
String
قيمة validate لـ GeeTest v3.
seccode
String
قيمة seccode لـ GeeTest v3.
captcha_id
String
قيمة captcha_id لـ GeeTest v4.
lot_number
String
قيمة lot_number لـ GeeTest v4.
pass_token
String
قيمة pass_token لـ GeeTest v4.
gen_time
String
قيمة gen_time لـ GeeTest v4.
captcha_output
String
قيمة captcha_output لـ GeeTest v4.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "challenge": "1ad03db8aff920037fb8117827eab171gu",
    "validate": "0e0ab9f2fdbf7b8e2c3c1a2d4f2c9b07",
    "seccode": "0e0ab9f2fdbf7b8e2c3c1a2d4f2c9b07|jordan",
    "captcha_id": "(v4) e392e1d7fd421dc63325744d5a2b9c73",
    "lot_number": "(v4) e6c3bed2854f41f880662c48afff5dcb",
    "pass_token": "(v4) fad5eb52fc83bf7617f4...",
    "gen_time": "(v4) 1693924478",
    "captcha_output": "(v4) fN36ufW6cQN2SQ-I..."
  },
  "cost": "0.0007",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

أمثلة الكود

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "GeeTestTaskProxyless",
      "websiteURL": "https://example.com/login",
      "gt": "81388ea1fc187e0c335c0a8907ff2625",
      "challenge": "2e2f0f65240058b683cb6ea21c303eea"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

طريقة نموذج in.php

المهمة نفسها عبر طلب النموذج الكلاسيكي. يرجع res.php الإجابة كنص.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=geetest&gt=GT&challenge=CHALLENGE&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API النماذج: in.php وres.php