Captcha v4
API 参考

API 指南

完整的 API 接口文档

客户端 SDK

服务端接口

快速导航

初始化接口

不同平台的初始化方法:

平台初始化方法文档链接
WebinitGeetest4(config, callback)Web API
iOSGeeLabCaptchaSession.sessionWithCaptchaID()iOS API
AndroidGeelabCaptchaClient.getClient().init()Android API

二次校验接口

服务端验证接口:

项目内容
接口地址请根据您注册 ID 时选择的地域使用对应域名:
全球:https://cap-global.geelabapi.com/validate
欧洲:https://cap-eu.geelabapi.com/validate
北美:https://cap-na.geelabapi.com/validate
请求方法GET/POST(推荐 POST)
请求格式application/x-www-form-urlencoded
返回类型JSON

重要: 必须在服务端进行二次验证,不要仅依赖客户端结果。

详细文档请查看 Server API

核心参数

captcha_id

验证公钥 - 32 位字符串,从极验后台获取。

// Web 示例
initGeetest4({
  captchaId: 'YOUR_CAPTCHA_ID'
}, callback);

captcha_key

验证私钥 - 32 位字符串,仅在服务端使用。

切勿在客户端代码中暴露 captcha_key

# 服务端示例
CAPTCHA_KEY = 'YOUR_CAPTCHA_KEY'  # 从环境变量读取

验证结果参数

客户端验证成功后返回的参数:

参数说明
lot_number验证流水号
captcha_output验证输出信息
pass_token验证通过标识
gen_time验证通过时间戳

这些参数需要提交到服务端进行二次验证。

返回码与错误处理

客户端错误码

常见的客户端错误码:

错误码说明
60001配置参数 captcha_id 有误
60100/load 请求报错
60200皮肤加载失败

完整错误码列表请查看各平台的 API 文档。

服务端错误码

常见的服务端错误码:

错误码说明
-50005gen_time 参数异常
-50103不存在的验证 ID
-50301流水号信息不存在

完整错误码列表请查看 Server API

请求示例

客户端初始化

以下是各平台的基本初始化示例,详细配置请查看对应平台的 API 文档。

Web:

initGeetest4({
  captchaId: 'YOUR_CAPTCHA_ID',
  product: 'bind'
}, function(captchaObj) {
  captchaObj.onSuccess(function() {
    const result = captchaObj.getValidate();
    // 提交到服务端验证
  });
});

iOS:

GeeLabCaptchaSession *session = [GeeLabCaptchaSession
    sessionWithCaptchaID:@"YOUR_CAPTCHA_ID"];
session.delegate = self;
[session verify];

Android:

GeelabCaptchaClient client = GeelabCaptchaClient.getClient(activity)
    .init("YOUR_CAPTCHA_ID", config);
client.verifyWithCaptcha();

服务端验证

Python 快速示例:

import hmac
import hashlib
import requests

# 生成签名
sign_token = hmac.new(
    CAPTCHA_KEY.encode(),
    lot_number.encode(),
    hashlib.sha256
).hexdigest()

# 发起验证请求
response = requests.post(
    'https://cap-global.geelabapi.com/validate',
    params={'captcha_id': CAPTCHA_ID},
    data={
        'lot_number': lot_number,
        'captcha_output': captcha_output,
        'pass_token': pass_token,
        'gen_time': gen_time,
        'sign_token': sign_token
    }
)

完整的服务端验证实现请参考:

下一步