通过应用名称下的切换器进入 Sandbox,创建并使用测试 API 密钥。所有检查都被模拟,不收费,你可以指定结果。
通过应用名称下的切换器进入 Sandbox,创建并使用测试 API 密钥。所有检查都被模拟,不收费,你可以指定结果。
Didit 的 sandbox 相当于支付服务商的测试卡:它让你可以按需复现任意核验结果,而无需调用真实的服务商、处理真实的个人数据,或动用你的余额。
#独立的测试环境
Sandbox 是组织共享的测试应用,其数据、密钥、webhook 和列表与 Live 分开。每页顶部的横幅会提示当前环境。

- 切换到 Sandbox
点击应用名称下的 Sandbox。返回 Live 前,检查工作流发布、Live 密钥或链接、webhook、付款和数据保留清单,然后确认切换或留在 Sandbox。
- 创建测试密钥
打开开发者 → API 密钥,创建时选择 Sandbox。密钥决定环境;Live 密钥不会创建 Sandbox 会话。
- 创建或复制工作流
Sandbox 有自己的工作流。创建要测试的流程,或从 Live 复制。
- 像平常一样创建会话
使用同样的接口、同样的代码路径,唯一的区别是你发送的密钥不同。
如果 Sandbox 是灰色的,组织尚无测试应用。请联系支持团队启用,这是账户级设置。
#sandbox 改变了什么,又没有改变什么
| Sandbox | Live | |
|---|---|---|
| 外部服务商 | 全部模拟 - 从不调用任何第三方 | 真实调用 |
| 计费 | 永不计费;跳过余额检查 | 按已完成的功能计费 |
| 会话创建上限 | 每个应用每 24 小时 500 次 | 取决于你的余额 |
| Webhook 负载 | "environment": "sandbox" | "environment": "live" |
| 提取的数据与状态 | 由你选择的场景模拟生成 | 来自真实采集的数据 |
| 采集的媒体 | 真实存储,与 live 会话完全一样 | 存储 |
sandbox 会像 live 会话一样,真实存储它所采集的媒体 - 证件、自拍、活体检测 视频、地址证明文件。结果是模拟的,但上传是真实的,因此请使用流程提供的 示例证件和测试数据,而不要使用真实身份证件或真实个人信息。
由于结果从不取决于图像内容本身,故意上传一张糟糕的照片并不会在 sandbox 中触发拒绝 - 结果由场景决定。
#选择结果
创建会话时,将场景标识作为 sandbox_scenario 传入,或者让测试者自行选择:在托管流程中,sandbox 会话会在开始采集前,于卡片内显示一个场景选择器,上传组件下方还会有一排示例证件,以及一条常驻的「仅限测试数据」提示条。
| 想要测试的场景 | 场景标识 |
|---|---|
| 全部通过 | approve |
| 证件已过期 | decline_document_expired |
| 证件无法识别 | decline_could_not_recognize_document |
| MRZ 校验失败 | decline_mrz_validation |
| 未达最低年龄 | decline_minimum_age |
| 人脸比对分数过低 | decline_face_match_low_similarity |
| 活体检测遭遇仿冒攻击 | decline_liveness_attack |
| AML 制裁 / PEP 命中 | decline_aml_hit |
| IP 地址被屏蔽 | decline_ip_blocklist |
| 地址证明地址不匹配 | decline_poa_address_mismatch |
| NFC 芯片完整性校验失败 | decline_nfc_chip_not_verified |
| 数据库验证未找到匹配 | decline_database_no_match |
| 需要人工审核(AML) | review_aml_possible_match |
| 需要人工审核(人脸比对处于临界值) | review_face_match_borderline |
| 需要人工审核(地址部分匹配) | review_poa_partial_match |
| KYB 注册信息不匹配 | decline_kyb_registry_mismatch |
review_* 系列场景的存在,是为了让你无需构造真正会被拒绝的输入,就能完整走一遍人工审核流程 - 控制台的审核队列、In Review webhook,以及审核人员批准或请求重新提交的操作。
场景与魔术值的最新目录由 API 本身通过 GET /v1/sandbox/scenarios/ 提供。
如果这里的某个标识看起来已经过时,请以该接口的返回结果为准。
完整参考:sandbox 测试。
#在你自己的代码中区分两者
每个 webhook 都带有一个 environment 字段 - "sandbox" 或 "live"。请基于这个字段做分支判断,而不是试图从密钥本身推断环境,这样你就永远不会把测试会话误认为真实客户。
#sandbox 不会做的事
- 不会返回真实公司的真实注册信息。sandbox 中的 KYB 使用模拟的注册信息响应。
- 不会发送真实的短信或邮件。手机验证和邮箱验证都是模拟的,因此你无法用 sandbox 预览真实的消息送达情况。
- 不会消耗你的每月套餐额度 - 这也意味着一次 sandbox 运行无法告诉你还剩多少额度。
#如果你需要真实的测试核验
有些情况确实需要一次真实调用 - 比如确认某个国家的数据库服务已经为你开通,或者确认短信能否送达某个特定运营商。这需要在 live 应用上进行一次小额充值,而不是使用 sandbox。在花费之前请先联系支持团队,确认相关服务已经在你的账户上正式启用。
还没解决?和真人聊聊。
请附上你的组织 ID 以及你要咨询的会话 ID。
