获取流程GET
通过标识符获取 Human Token 流程 — 在用户从 Human Token Journey 返回后,或再次查询 API Only 的结果。
端点
| 环境 | URL |
|---|---|
| 生产环境 | GET https://humantoken.unico.app/client/v1/process/{processId} |
请求
请求头
| Header | 值 |
|---|---|
x-unico-accesskey | <your_access_key>(参见身份验证) |
路径参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
processId | string (UUID) | 是 | 由创建流程返回的流程标识符。 |
示例
- cURL
- Node.js
curl -X GET https://humantoken.unico.app/client/v1/process/$PROCESS_ID \
-H "x-unico-accesskey: $UNICO_ACCESS_KEY"
import fetch from 'node-fetch';
const res = await fetch(
`https://humantoken.unico.app/client/v1/process/${processId}`,
{ headers: { 'x-unico-accesskey': process.env.UNICO_ACCESS_KEY } }
);
const result = await res.json();
// result.data.humanToken.value
响应
200 OK
响应的格式与创建流程相同。data 的结构取决于创建流程时使用的流。
标准流(api+humantoken、api+liveness+humantoken、humantoken):
{
"id": "6ed74799-4c2f-4023-b43f-a73cf7c847b2",
"state": "PROCESS_STATE_FINISHED",
"data": {
"humanToken": {
"value": "3f9a1c7e5b2d4086a1e3c5f7092b4d6e8a0c2e4f6183a5c7e9b1d3f5072a4c6e",
"status": "validated"
}
}
}
重新验证流(api+liveness+humantoken+revalidation、humantoken+revalidation):
{
"id": "cb0472c0-6dbc-46c6-b830-2be7edc35424",
"state": "PROCESS_STATE_FINISHED",
"data": {
"humanTokenMatch": "true"
}
}
| 字段 | 类型 | 描述 |
|---|---|---|
id | string (UUID) | 流程标识符。 |
state | string | 流程状态 — 参见 state 取值。 |
data.humanToken.value | string | 仅标准流。人脸的稳定、不透明标识符(最多 100 个字符)。同一个人始终解析为相同的值。 |
data.humanTokenMatch | string | 仅重新验证流。如果自拍与引用的 humanToken 匹配则为 "true",否则为 "false"。 |
state 取值
| 值 | 含义 |
|---|---|
PROCESS_STATE_UNSPECIFIED | 未设置状态。 |
PROCESS_STATE_CREATED | 流程已创建,仍可接受新的会话。data 为 {}。 |
PROCESS_STATE_FINISHED | 流程已完成,不再接受新的会话。对于标准流,生成了 Human Token 时包含 data.humanToken;对于重新验证流,data.humanTokenMatch 指示自拍是否与引用的令牌匹配。否则 data 为 {}。 |
PROCESS_STATE_FAILED | 流程失败。data 为 {}。 |
PROCESS_STATE_CANCELED | 流程已取消。data 为 {}。 |
PROCESS_STATE_AWAITING_FOR_DOCUMENT | 流程正在等待身份证件。data 为 {}。 |
警告
使用 data.humanToken.value 之前,请务必确认其不为空。
错误代码
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
| 代码 | 消息 | 描述 |
|---|---|---|
3 | process id is invalid | 流程 ID 无效时。 |
x-unico-accesskey 请求头中的访问密钥缺失或无效。参见身份验证。
| 代码 | 消息 | 描述 |
|---|---|---|
5 | error getting process: rpc error: code = NotFound desc = process not found | 未找到该流程 ID 时。 |
已达到速率限制。当您的系统收到 HTTP 429 错误时,必须实施机制以防止级联故障并避免加重限制。
最佳实践:
- 冷却期(backoff): 立即停止或限制系统的后续请求。不要在紧密循环中持续重试失败的请求。
- 排队与限流(Queueing & throttling): 在您的一侧缓冲或排队传出请求,以便在重新发送之前控制流量。
- 带抖动的指数退避(Exponential backoff with jitter): 重试时,在尝试之间以指数方式增加等待时间(例如,1秒、2秒、4秒、8秒),并添加一个小的随机延迟("抖动"),以防止所有排队请求在完全相同的毫秒重试的羊群效应。
警告
在未应用退避的情况下持续请求受速率限制的端点,可能会延长限制期并严重影响系统的运行吞吐量。在您的一侧正确限流请求可确保更顺畅、更具弹性的集成。
有关默认限制、增加请求及其他详细信息,请参阅速率限制。
| 代码 | 消息 | 描述 |
|---|---|---|
99999 | Internal failure! Try again later | 发生内部错误时。 |
后续步骤
- 返回创建流程以发送新的自拍。
- 要了解
humanToken代表什么以及在何种情况下不会生成,请参见 Human Token 概览。