一卡通系统对接
请求地址 /openapi/interface/icard/sync
请求方法 POST
数据类型 application/json
接口鉴权 在请求headers中加入appid和secret_key
"headers":{
"appid":"XXXXXXXXXX",
"secret_key":"XXXXXXXXXXXXXXXX"
}
请求参数
{"cards":[
{
"name":"张三",
"sex":1,
"card_num":"2534211111",
"department":"",
"position":"",
"school_identify":"143254521",
"start_time":"",
"end_time":""
}
]}
参数说明
字段名 | 字段类型 | 字段含义 | 是否必填 | 取值说明 |
---|---|---|---|---|
cards | Array | IC卡信息集合 | 是 | |
cards[n].name | String | 姓名 | 是 | 最长100个字符 |
cards[n].sex | Int | 性别 | 是 | 0 女 1男 |
cards[n].card_num | String | IC卡号 | 是 | 通常为十位数数字 |
cards[n].department | String | 部门 | 否 | |
cards[n].position | String | 职务 | 否 | |
cards[n].school_identify | String | 工号 | 否 | |
cards[n].start_time | Date | 有效期开始时间 | 否 | 为空则立即生效,日期格式如YYYY-MM-DD hh:mm:ss |
cards[n].end_time | Date | 有效期结束时间 | 否 | 为空则永久生效,日期格式如YYYY-MM-DD hh:mm:ss |
教务系统对接
1.同步课室表
请求地址 /openapi/interface/room/sync
请求方法 POST
数据类型 application/json
接口鉴权 在请求headers中加入appid和secret_key
"headers":{
"appid":"XXXXXXXXXX",
"secret_key":"XXXXXXXXXXXXXXXX"
}
请求参数
{
"rooms":[
{
"room_tag":"一教101",
"room_desc": "智慧教室",
"room_id":1
}
]
}
参数说明
字段名 | 字段类型 | 字段含义 | 是否必填 | 取值说明 |
---|---|---|---|---|
rooms | Array | 课室信息集合 | 是 | |
rooms[n].room_tag | String | 教务系统课室名称 | 是 | |
rooms[n].room_desc | String | 课室说明 | 是 | |
rooms[n].room_id | String | 教务系统课室编号 | 是 |
课室数据同步完成后,管理员需要在后台数据配置->数据对接->教务系统对接页面中维护教务系统课室与本系统课室的对应关系
2.加载当前的学期信息
请求地址 /openapi/interface/term/last/load
请求方法 POST
数据类型 application/json
接口鉴权 在请求headers中加入appid和secret_key
"headers":{
"appid":"XXXXXXXXXX",
"secret_key":"XXXXXXXXXXXXXXXX"
}
请求参数
无
请求成功返回
{
"id": 1,
"year": 2023,
"term": 0,
"start_time": "2023-08-28",
"end_time": "2024-01-18"
}
参数说明
字段名 | 字段类型 | 字段含义 | 取值说明 |
---|---|---|---|
id | Integer | 学期id | |
year | Integer | 学年 | 2023-2024取值为2023 |
term | Integer | 学期 | 0 上学期 1 下学期 |
start_date | String | 学期开始日 | |
end_date | String | 学期结束日 |
3.同步课表
请求地址 /openapi/interface/timetable/sync
请求方法 POST
数据类型 application/json
接口鉴权 在请求headers中加入appid和secret_key
"headers":{
"appid":"XXXXXXXXXX",
"secret_key":"XXXXXXXXXXXXXXXX"
}
请求参数
{
"term_id":1,
"timetable":[
{
"course_id": "课程编号",
"course_name":"计算机组成与原理",
"class_name": ["1班","2班"],
"week":1,
"duration":[1,16],
"weekTag":0,
"sections":[1,2],
"teacher":{
"name":"王老师",
"card_num":"1546736262"
}
}
]
}
参数说明
字段名 | 字段类型 | 字段含义 | 是否必填 | 取值说明 |
---|---|---|---|---|
term_id | Integer | 学期id | 是 | 通过/openapi/interface/term/last/load接口获取 |
timetable | Array | 课表信息集合 | ||
timetable[n] | Array | 课程信息数组 | 是 | |
timetable[n].room_id | String | 教务系统课室编号 | 是 | 需保证唯一 |
timetable[n].course_name | String | 课程名称 | 是 | |
timetable[n].class_name | String | 上课班级 | 是 | 多个班级,","分开 |
timetable[n].week | Integer | 上课星期 | 是 | 1-7 |
timetable[n].weekTag | Integer | 单双周标识 | 是 | 0 不分单双周 1单周上课 2双周上课 |
timetable[n].duration | Array | 上课周次 | 是 | [起周,止周] |
timetable[n].sections | Array | 上课节次 | 是 | [开始节次,..,结束节次] 期间节次将设置为连堂 |
timetable[n].teacher | Object | 老师信息 | 是 | |
timetable[n].teacher.name | String | 教师的姓名 | 是 | |
timetable[n].teacher.card_num | String | 教师的IC卡号 | 否 | 十位数字,不够前面补0 |
timetable[n].teacher.work_code | String | 教师的工号 | 否 |
第三方登录对接
1.登录认证
请求地址 /oauth2/authorize
请求方法 GET
参数说明
字段名 | 字段类型 | 字段含义 | 是否必填 | 取值说明 |
---|---|---|---|---|
response_type | String | 请求类型 | 是 | 固定为code |
app_id | String | 应用id | 是 | 后台分配 |
redirect_uri | String | 回调地址 | 是 | |
scope | String | 请求权限范围 | 是 | 固定为base |
请求后,页面会跳转至登录页面。登录成功后,系统会跳转至redirect_uri地址,该地址后会拼接code参数。第三方应用需要拿到该code去获取用户信息。
2.获取登录用户信息
请求地址 /oauth2/resources
请求方法 POST
数据类型 application/json
参数说明
字段名 | 字段类型 | 字段含义 | 是否必填 | 取值说明 |
---|---|---|---|---|
grant_type | String | 请求类型 | 是 | 固定为user_info |
code | String | 是 | 登录认证获取的code | |
app_id | String | 应用id | 是 | 后台分配 |
app_secret | String | 应用密钥 | 是 | 后台分配 |
返回示例
{
"code":0,
"data":{
"account":"123",
"name":"张三",
"sex":1
}
}
返回字段
字段名 | 字段类型 | 字段含义 | 取值说明 |
---|---|---|---|
account | String | 用户账号 | |
name | String | 用户姓名 | |
sex | String | 性别 | 0女 1男 |
获取用户信息后,第三方应用需要在自身系统中创建同名同账号的用户,以达到免登录目的。