API 接口文档

标准化数据接入规范,一次对接覆盖所有院校

6
标准接口
AES-256
加密传输
5
语言SDK

接入概览

知岁OS提供标准化的RESTful API接口,第三方服务商通过AES-256-GCM加密方式获取用户授权的院校应用数据

基础信息

协议HTTPS
格式JSON / UTF-8
认证Token机制
加密AES-256-GCM

6大标准接口

  • GET 校区列表
  • POST 院校登录
  • POST 调用数据接口
  • POST 消费数据(useToken)
  • POST 获取验证码
  • POST 注销登录

安全机制

  • 用户主动授权才能获取数据
  • 一次一密,Token 15分钟有效
  • 端到端加密传输
  • 请求频率限制防滥用
POST

/api/open/useToken

核心接口

第三方服务商对接的核心接口。用户在知岁OS小程序获取数据Token后,服务商通过加密请求获取授权的应用数据。

参数类型必填说明
uuidstring服务商标识(后台注册获取)
datastringAES-256-GCM加密数据
成功响应
{
  "code": 1,
  "msg": "ok",
  "data": "加密数据(需使用对应密钥解密)"
}

对接流程

简单4步即可完成数据对接

1

注册服务商

在知岁OS后台注册,获取 uuidsecretkey

2

用户授权获取Token

用户通过知岁OS小程序完成院校登录,调用数据接口获取 token

3

加密请求

使用 secretkey 对 UUID+Token 进行 AES-256-GCM 加密

4

获取数据

调用 useToken 接口,解密响应数据得到用户授权的院校信息

用户(小程序)                第三方服务商                  知岁OS平台
    │                          │                          │
    │  1.院校登录+选择数据       │                          │
    │─────────────────────────────────────────────────────▶│
    │                          │                          │
    │  2.获取数据Token          │                          │
    │◀────────────────────────────────────────────────────│
    │                          │                          │
    │  3.提供Token给服务商       │                          │
    │─────────────────────────▶│                          │
    │                          │                          │
    │                          │  4.AES加密(UUID+Token)    │
    │                          │─────────────────────────▶│
    │                          │                          │
    │                          │  5.加密的院校数据          │
    │                          │◀─────────────────────────│
    │                          │                          │
    │                          │  6.AES解密获得原始数据     │
                  

加密规范

AES-256-GCM 端到端加密,确保数据传输安全

请求加密(客户端 → 服务端)

1 构造明文:UUID + token
2 生成随机初始向量(IV)
3 使用 AES-256-GCM 算法加密明文
4 拼接 IV + 认证标签 + 密文
5 Base64 编码后作为 data 参数

响应解密(服务端 → 客户端)

1 Base64 解码响应中的 data
2 按规范拆分 IV、认证标签、密文
3 使用 AES-256-GCM 算法解密
4 得到原始 JSON 数据
密钥说明:密钥在服务商注册时由平台生成,请妥善保管切勿泄露。
Token 有效期:数据Token有效期为15分钟,过期自动失效,每个Token仅可消费一次。

标准数据格式

所有校区接口返回的数据严格遵循以下格式规范

userInfo

获取用户的基本校园身份信息

字段类型说明
usernamestring姓名
genderstring性别
departmentstring院系
majorstring专业
enrollment_yearstring入学年份
student_idstring学号
JSON
{
  "username": "张三",
  "gender": "男",
  "department": "计算机学院",
  "major": "软件工程",
  "enrollment_year": "2023",
  "student_id": "2023010101"
}

course

获取当前学期的课程表信息

字段类型说明
namestring课程名称
startint开始节次
endint结束节次
floorstring教室位置
weeksint[]上课周次数组
weekint星期几(1-7)
teacherstring教师姓名
JSON
[
  {
    "name": "高等数学",
    "start": 1,
    "end": 2,
    "floor": "教学楼A-101",
    "weeks": [1, 2, 3, 4, 5, 6, 7, 8],
    "week": 1,
    "teacher": "李教授"
  },
  {
    "name": "大学英语",
    "start": 3,
    "end": 4,
    "floor": "外语楼-203",
    "weeks": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    "week": 3,
    "teacher": "王老师"
  }
]

score

获取各学年学期的成绩信息

字段类型说明
外层:学年 → 学期
coursestring课程名
creditstring学分
gpastring绩点
achievementstring成绩
JSON
{
  "2023": {
    "1": [
      {
        "course": "高等数学",
        "credit": "4.0",
        "gpa": "3.5",
        "achievement": "85"
      }
    ],
    "2": []
  }
}

progress

获取学业进度详情

字段类型说明
gpastring总绩点
allint总课程数
passint已通过
failint未通过
unfinishedint未修
studyingint在修
timestring更新时间
coursesobject课程列表(含4类)
JSON
{
  "gpa": "3.52",
  "all": 50,
  "pass": 45,
  "fail": 2,
  "unfinished": 3,
  "studying": 5,
  "time": "2026-05-20 10:30:00",
  "courses": {
    "compulsory": [
      {
        "academicYear": "2023-2024",
        "semester": "1",
        "name": "高等数学",
        "status": "已通过"
      }
    ],
    "elective": [],
    "restricted": [],
    "other": []
  }
}

classroom

获取指定日期和教学楼的空闲教室信息

字段类型说明
外层:教学楼名称 → 教室列表
namestring教室名称
statusarray各节课占用状态(0=空闲,1=占用)
JSON
{
  "教学楼A": [
    {
      "name": "A-101",
      "status": [0, 0, 1, 1, 0, 0, 0, 0]
    },
    {
      "name": "A-102",
      "status": [0, 1, 1, 0, 0, 0, 1, 0]
    }
  ],
  "教学楼B": [
    {
      "name": "B-201",
      "status": [0, 0, 0, 0, 1, 1, 0, 0]
    }
  ]
}

exam

获取当前学期的考试安排信息

字段类型说明
namestring考试科目
datestring考试日期
timestring考试时间
locationstring考试地点
seatstring座位号
typestring考试类型(如闭卷/开卷)
JSON
[
  {
    "name": "高等数学",
    "date": "2026-06-20",
    "time": "09:00-11:00",
    "location": "教学楼A-301",
    "seat": "15",
    "type": "闭卷"
  },
  {
    "name": "大学英语",
    "date": "2026-06-22",
    "time": "14:00-16:00",
    "location": "外语楼-105",
    "seat": "22",
    "type": "闭卷"
  }
]

案例代码下载

提供多种语言的SDK示例代码,快速完成对接集成

PHP

基于 cURL + OpenSSL 的完整对接示例,含加密/解密实现

下载示例代码

Java

基于 HttpURLConnection 的对接客户端,含 AES-256-GCM 加解密工具类

下载示例代码

Python

基于 requests + cryptography 库的对接示例

下载示例代码

Node.js

基于 crypto 模块的对接示例,适用于前后端项目

下载示例代码

微信小程序

微信小程序端完整的院校登录和数据获取示例代码

下载示例代码

完整对接文档

包含所有接口详细说明、参数规范、错误码参考

下载文档