鼎点驾考 API 题库中心 开放接口文档
服务正常 官方网站
DDJK OPEN API · V2.0

稳定、清晰、可直接接入的
驾考题库开放接口

统一提供题库信息、顺序练习、随机练习、分类取题、模拟考试、图片与语音队列。第三方客户使用 appid + appSecret 鉴权。

5608 道唯一母题 12 个正式题池 17052 条题池归属 587 条地区题归属
请求示例 GET
https://api.it2345.com/api/v1/ddjk/index.php
  ?endpoint=random
  &pool=c1
  &limit=20
  &bank_mode=original
  &appid=YOUR_APPID
  &appSecret=YOUR_APPSECRET
HTTPS UTF-8 JSON
01

基础地址

所有开放接口统一使用 HTTPS 和 UTF-8 JSON。

正式接口入口 https://api.it2345.com/api/v1/ddjk/index.php
自有 H5、微信公众号和小程序: 不在浏览器中保存正式 appSecret,应通过 https://dd.it2345.com 同源服务端代理接入。
02

身份认证

第三方开放接口统一使用 appid 与 appSecret。

ID

appid

客户唯一编号,用于识别授权客户、题池范围和调用套餐。

KEY

appSecret

客户密钥。新建客户时明文展示一次,丢失后应重置,不应公开反查。

安全提醒: appSecret 只能保存在服务器端。不要写入 H5、公众号、小程序、Android、鸿蒙、Windows 或其他可反编译客户端。
03

快速开始

以 C1 随机获取 20 道标准题库题目为例。

HTTP 请求
GET /api/v1/ddjk/index.php
  ?endpoint=random
  &pool=c1
  &limit=20
  &bank_mode=original
  &appid=YOUR_APPID
  &appSecret=YOUR_APPSECRET
1

申请授权
取得 appid 和 appSecret。

2

确认权限
核对题池、接口、次数和有效期。

3

服务端请求
通过 HTTPS 请求接口。

4

按字段展示
保留 HTML、图片和语音队列。

04

接口目录

endpoint 参数决定当前调用的业务接口。

用途endpoint说明
接口概览meta获取接口版本、服务状态和基础说明。
题池列表banks返回当前客户已授权的正式题池。
题库版本version返回题库、分类和内容版本信息。
随机练习random在授权题池中随机获取题目。
顺序练习sequential按正式题序分页获取题目。
分类目录groups获取后端正式发布的章节、专项和分类。
分类取题group-questions按分类 ID 读取对应题目。
模拟考试exam按考试规则生成试卷,终端负责计时和交卷流程。
05

通用参数

不同 endpoint 可能还有专属参数,未使用的参数不必传递。

参数是否必填示例说明
endpoint必填random当前调用的接口名称。
appid必填ddjk_xxx客户授权编号。
appSecret必填YOUR_APPSECRET客户密钥,仅保存在服务端。
pool取题必填c1正式题池编码,以 banks 返回为准。
bank_mode选填originaloriginal 标准题库;optimized 优化题库;不传默认 original。
limit选填20本次返回数量,受客户套餐和接口限制。
offset / page选填0 / 1顺序分页参数,按接口实际返回使用。
group_id分类取题chapter_xxx由 groups 接口返回,前端不得自行编造。
06

题库模式与学习路线

标准题库和优化题库共用正式 question_id,但分类、进度和缓存需要隔离。

original

标准题库

返回正式原版分类、题序、技巧、官方解释、图片和语音。

optimized

优化题库

返回优化章节、专项、学习路线和老师点拨,不改变原题与答案。

考前200题统一规则

正式名称统一为 考前200题,正式路线标识统一为 sprint.200

fast.3days、快速学习、3天速通仅作为历史兼容别名,不再显示独立入口,也不建立第二份学习进度。

07

返回字段

接口返回字段会保留原题文本、答案、图片、语音及教学内容。

id / qid / question_id question_type / type title_html title_text options answer_keys analysis_html analysis_text skill_html skill_text teacher_tip_html teacher_tip_text image_url audio

*_html

用于页面正式展示,应保留后端已有 HTML 高亮和排版,不能自行猜关键词。

*_text

用于搜索、日志、纯文本展示或语音文本,不应替代正式 HTML 展示。

JSON 返回示意
{
  "status": "ok",
  "data": [
    {
      "question_id": "examdata_10001",
      "type": "single",
      "title_html": "题干 HTML",
      "options": [
        {"key": "A", "html": "选项 A"}
      ],
      "answer_keys": ["A"],
      "analysis_html": "官方解释",
      "skill_html": "技巧讲解",
      "teacher_tip_html": "老师点拨",
      "image_url": "",
      "audio": {}
    }
  ]
}
08

图片与语音队列

终端直接使用返回的真实 URL 和播放队列,不得自行拼接或使用 TTS 兜底。

字段用途
image_url图片或 GIF 资源地址,终端直接使用返回值。
audio.read_question_queue主动读题完整播放队列。
audio.question_stem_queue题干语音队列。
audio.correct_answer_queue正确答案字母和内容播放队列。
audio.wrong_answer_queue_normal非 VIP 答错讲解队列。
audio.wrong_answer_queue_vipVIP 答错技巧和老师点拨队列。
audio.option_audio_urls当前题选项内容语音。
audio.skill_audio_url原技巧讲解语音。
audio.teacher_tip_audio_url老师点拨语音;为空时不显示播放按钮。
audio.official_audio_url官方解释语音。
无对应语音时显示“暂无语音”。禁止浏览器 TTS、系统朗读、其他题目语音顶替或根据文件名猜地址。
09

代码示例

示例中的凭证必须替换,并保存在服务端环境变量或安全配置中。

curl -G 'https://api.it2345.com/api/v1/ddjk/index.php' \
  --data-urlencode 'endpoint=random' \
  --data-urlencode 'pool=c1' \
  --data-urlencode 'limit=20' \
  --data-urlencode 'bank_mode=original' \
  --data-urlencode 'appid=YOUR_APPID' \
  --data-urlencode 'appSecret=YOUR_APPSECRET'
// 仅用于服务端 Node.js,浏览器前端不要保存 appSecret
const url = new URL('https://api.it2345.com/api/v1/ddjk/index.php');
url.search = new URLSearchParams({
  endpoint: 'random',
  pool: 'c1',
  limit: '20',
  bank_mode: 'original',
  appid: process.env.DDJK_APPID,
  appSecret: process.env.DDJK_APP_SECRET
});

const response = await fetch(url);
const data = await response.json();
<?php
$params = http_build_query([
    'endpoint' => 'random',
    'pool' => 'c1',
    'limit' => 20,
    'bank_mode' => 'original',
    'appid' => getenv('DDJK_APPID'),
    'appSecret' => getenv('DDJK_APP_SECRET'),
]);

$json = file_get_contents(
    'https://api.it2345.com/api/v1/ddjk/index.php?' . $params
);

$data = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
using var client = new HttpClient();
var url = "https://api.it2345.com/api/v1/ddjk/index.php"
    + "?endpoint=random"
    + "&pool=c1"
    + "&limit=20"
    + "&bank_mode=original"
    + "&appid=" + Uri.EscapeDataString(appId)
    + "&appSecret=" + Uri.EscapeDataString(appSecret);

var json = await client.GetStringAsync(url);
10

状态与错误

业务状态以 JSON 中的 status 和 message 为准。

状态说明处理建议
ok请求成功。按 data 字段继续处理。
unauthorizedappid、appSecret 错误或授权未启用。核对凭证和客户状态。
expired授权已到期。续费或调整授权有效期。
limited次数、接口范围或题库范围受限。核对套餐、剩余次数和题池权限。
invalid_request缺少必要参数或请求方式不正确。检查 endpoint、pool、分类 ID 和参数格式。
11

安全与上线建议

正式上线前应完成权限、缓存、字段和异常处理验收。

✓ appSecret 只保存在服务器端
✓ 只显示客户已授权题池
✓ question_id 作为唯一主键
✓ HTML 字段保留正式高亮
✓ 图片失败不阻塞题目显示
✓ 语音失败不阻塞判题切题
✓ 缓存区分 bank_mode 与版本
✓ 错误状态显示正式产品文案

正式上线前

请完整检查题目展示、题型、选项顺序、答案判定、图片加载、语音播放、错题/收藏/进度记录和异常提示。

READY FOR PRODUCTION
已复制