UNLOCK API
GeeTest v3 / v4

GeeTest v3 / v4

Cara menghantar tugas GeeTest v3 / v4 ke UNLOCK API dengan createTask atau in.php: nama jenis tugas, setiap parameter, objek solution, medan proxy dan contoh kod dalam 7 bahasa.
Harga
$0.70 $0.0007 setiap tugas
Anda hantar
URL halaman dengan gt dan challenge (v3) atau captcha_id (v4)
Anda terima
Nilai yang dihantar oleh borang GeeTest

Ringkasan dan harga

Nama jenis tugas

Gunakan nama pertama untuk menyelesaikan tanpa proxy. Gunakan nama kedua dan tambah medan proxy untuk menyelesaikan melalui proxy anda sendiri. Harganya sama.
GeeTestTaskProxylessTanpa proxy
GeeTestTaskMelalui proxy anda

Objek task

type
StringWajib
Nama jenis tugas. Dipadankan tanpa mengira huruf besar atau kecil. GeeTestTaskProxyless | GeeTestTask
websiteURL
StringWajib
Alamat penuh halaman tempat CAPTCHA dipaparkan, bermula dengan http:// atau https://.
gt
StringPilihan
GeeTest v3: nilai gt daripada halaman.
challenge
StringPilihan
GeeTest v3: nilai challenge yang baharu. Dapatkan yang baharu untuk setiap tugas.
geetestApiServerSubdomain
StringPilihan
Pelayan API GeeTest, jika halaman menggunakan pelayan sendiri.
version
IntegerPilihan
4 untuk GeeTest v4. Lalai 3.
initParameters
ObjectPilihan
GeeTest v4: objek dengan captcha_id.
userAgent
StringPilihan
User-Agent pelayar yang digunakan semasa menyelesaikan. Hantar yang sama apabila anda menghantar jawapan.

Medan yang tidak disenaraikan di sini dihantar kepada penyelesai seperti yang dihantar.

Medan proxy

Hanya untuk nama jenis proxy. Hantar sama ada medan berasingan atau satu rentetan proxy.
proxyType
StringWajib
http, https, socks4 atau socks5.
proxyAddress
StringWajib
Alamat IP atau nama host proxy.
proxyPort
IntegerWajib
Port proxy.
proxyLogin
StringPilihan
Nama pengguna proxy, jika proxy memerlukannya.
proxyPassword
StringPilihan
Kata laluan proxy, jika proxy memerlukannya.
proxy
String
Semua medan proxy dalam satu rentetan, contohnya http://user:pass@1.2.3.4:8080.

Menggunakan proxy

Permintaan

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

Objek solution

Dipulangkan dalam solution apabila status ialah ready.
challenge
String
challenge GeeTest v3 untuk dihantar.
validate
String
Nilai validate GeeTest v3.
seccode
String
Nilai 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
}

Contoh kod

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")

Kaedah borang in.php

Tugas yang sama dengan permintaan borang klasik. res.php memulangkan jawapan sebagai teks.
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 borang: in.php dan res.php