验证码类型 · aliyun
阿里云验证码 2.0 识别 API:场景 ID 与验证载荷
通过 SolveHub API 解决阿里云验证码 2.0:场景 ID、身份前缀与需要回传目标站点的验证载荷。请求字段、cURL 示例与错误码。
适用于授权自动化测试、风控 QA 与浏览器集成。请仅在有权测试的站点和业务流程中使用。
POST /v1/tasks 发送下方 JSON,附带 Authorization: Bearer <API_KEY>、Content-Type: application/json 与 Idempotency-Key。先在实时价格确认该类型可用;完整创建与查询流程见快速开始。必填页面地址 websiteURL、场景 ID websiteKey、身份前缀 prefix 和 HTTP 代理。region 仅支持 sgp、cn,省略时默认 sgp;useragent 可选。场景 ID 与身份前缀应取自目标业务实际的阿里云验证码配置。
浏览器选择
如指定 useragent,使用桌面 Chrome/Chromium 或 Android Chrome;不支持 Firefox、Edge、Opera 或 iOS。Android 是否可用取决于能否生成相容的设备指纹。
请求字段
外层 type 和 task 必填;以下 task.* 路径均位于 task 对象内。字段名区分大小写。长度限制按 UTF-8 字节计算。
| 字段 | 类型 | 必填 | 限制 | 说明 |
|---|---|---|---|---|
type |
字符串 | 是 | 固定为 aliyun |
平台任务类型。 |
task |
JSON 对象 | 是 | ≤ 7 MiB | 此类型的任务参数。 |
task.type |
字符串 | 否 | 如提供必须为 aliyun |
兼容旧请求格式;新接入可省略。 |
task.websiteURL |
HTTP(S) URL | 是 | ≤ 2048 字节 | 需要解题的目标页面完整 URL,不含账号密码。 |
task.websiteKey |
字符串 | 是 | ≤ 256 字节 | 目标页面初始化验证码时使用的 SceneId。 |
task.prefix |
字符串 | 是 | ≤ 128 字节 | 目标验证码配置中的 Identity Prefix。 |
task.region |
字符串 | 否 | sgp / cn |
服务区域;省略时按默认区域处理。 |
task.useragent |
字符串 | 否 | ≤ 512 字节 | 自定义浏览器 User-Agent;后续请求优先使用实际返回的 solution.useragent。 |
task.proxyType |
字符串 | 是 | 仅 http |
代理协议;提供时必须为 http。 |
task.proxyAddress |
字符串 | 是 | ≤ 256 字节 | 代理 IP 或主机名,必须与 proxyPort 同时提供。 |
task.proxyPort |
字符串 | 是 | 1–5 字节,数值 1–65535 | 代理端口,必须为带引号的数字字符串。 |
task.proxyLogin |
字符串 | 否 | ≤ 256 字节 | 代理需要认证时填写用户名;不得单独提供而不填地址与端口。 |
task.proxyPassword |
字符串 | 否 | ≤ 256 字节 | 代理需要认证时填写密码;不得单独提供而不填地址与端口。 |
创建请求示例
{
"type": "aliyun",
"task": {
"websiteURL": "https://example.com/login",
"websiteKey": "SCENE_ID",
"prefix": "IDENTITY_PREFIX",
"region": "sgp",
"proxyType": "http",
"proxyAddress": "203.0.113.10",
"proxyPort": "8080"
}
}
cURL 调用
把示例中的 Key、站点信息与代理替换为你的实际值;Idempotency-Key 对同一次业务请求保持不变。
curl -sS -X POST 'https://www.tiam.codes/v1/tasks' \
-H 'Authorization: Bearer sh_REPLACE_ME' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: example-aliyun-0001' \
--data-binary @- <<'JSON'
{
"type": "aliyun",
"task": {
"websiteURL": "https://example.com/login",
"websiteKey": "SCENE_ID",
"prefix": "IDENTITY_PREFIX",
"region": "sgp",
"proxyType": "http",
"proxyAddress": "203.0.113.10",
"proxyPort": "8080"
}
}
JSON
创建响应与查询
创建成功返回 HTTP 202,status 初始通常为 queued。保存 taskId,每约 2–3 秒调用 GET /v1/tasks/{taskId} 查询。本类型处理软时限为 150 秒;超过软时限可能进入 uncertain,有已受理任务的结果可继续核对,客户端不要用新幂等键盲目重建。
结果字段
只在 status=completed 时读取 solution;下表列出常用字段,实际字段以该任务响应为准。
| 字段 | 类型 | 读取方式 |
|---|---|---|
solution.value |
对象或 JSON 字符串 | 解析后检查 sceneId、certifyId、deviceToken、data;这四项由实际结果决定。 |
solution.value 可能是 JSON 字符串,也可能已经是对象;解析后读取 sceneId,certifyId,deviceToken,data。例如 {"value":"{\"sceneId\":\"...\",\"certifyId\":\"...\",\"deviceToken\":\"...\",\"data\":\"...\"}"}。deviceToken 与解题网络环境相关,向目标业务提交验证载荷时应使用相同代理出口。
失败与排查
prefix 是 Identity Prefix,不能用 SceneId 代替;solution.value 可能为字符串或对象。deviceToken 消费时保持同一网络出口。
创建请求常见错误为 400 INVALID_TASK、402 INSUFFICIENT_BALANCE、429 TASK_LIMIT_EXCEEDED 和 503 TYPE_UNAVAILABLE。已创建任务失败时公开错误码为 TASK_FAILED 或 TASK_TIMEOUT;uncertain 对应 TASK_UNCERTAIN。详见 平台 API 参考。
处理窗口从任务确认受理后起算,不扣除已花费的排队时间。解题节点当前约 120 秒超时;平台保留 150 秒软时限以等待网络和轮询结果。
相关文档
最近更新: