-
Notifications
You must be signed in to change notification settings - Fork 0
Home
客户方接入资源平台时,需要提供以下几个相关的数据接口,用来鉴权以及同步相关的学习记录数据,以下接口均为资源平台调用客户方
接口描述
根据token获取用户相关信息
http请求方式
GET
请求地址(restful形式)
https://domain/xxx/{token}请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| token | String | 是 | 用户凭证(url中的参数) | a0d75cea6cea40942848bdbc7777ba17 |
响应参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| msg | String | 是 | 是否成功 | Success | fail(成功|失败) |
| name | String | 是 | 用户名 | zhangsan |
| rootOrganizationCode | String | 是 | 用户所属的组织编码 | zz_BAde1af01 |
| fullName | String | 是 | 用户全名 | 张三 |
| sex | int | 是 | 性别(0:男,1:女) | 0 |
| String | 是 | 邮箱 | ||
| phoneNumber | String | 是 | 手机号 |
请求示例
curl https://rasdev9.zhixueyun.com/api/v1/human/member/getToken/a97d5ee3cb1793e24562f0c10922a2b9
响应示例
{
"msg": "success",
"phoneNumber": null,
"rootOrganizationCode": "zz_BAde1af01",
"headPortraitPath": null,
"sex": 0,
"name": "admin",
"rootOrganizationName": "资源共享平台",
"fullName": "超级管理员",
"id": "45626218-a4fc-41eb-8c66-022886421a10",
"headPortrait": null,
"rootOrganizationId": "ba915d93-274d-4319-8016-035508166f64",
"email": null
}异常示例
{"msg": "fail"}由于用户学习的资源是资源平台提供的,因此用户在学习资源时所产生的学习记录,进度等信息将会产生在资源平台,若接入方企业需要用到这些信息的话,便要提供资源学习数据回传接口,那么资源平台会调用该接口,用来将用户的学习记录传给接入方系统。对于不同类型的资源,需要提供不同的接口
接口Url示例(具体url随意,这里只是示例):
https://dev9.zhixueyun.com/api/v1/course-study/course-study-progress/callbackhttp请求方式
GET
验证方式
sign加签验证
请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | admin |
| organizationCode | String | 是 | 企业编码 | zz_BAde1af01 |
| courseId | String | 是 | 课程ID | 5d587e40-2b30-4010-a37f-51aa5d4fbc8f |
| finishStatus | int | 是 | 学习状态0-未开始,1-学习中,2-已完成,3-已放弃 ,4-标记完成 | 1 |
| finishTime | long | 是 | 完成时间,(单位秒) | 1572316591952 |
| studyTotalTime | String | 是 | 学习总时长 | 2400 |
| sign | String | 是 | 签名秘钥+name+organizationCode+courseId+finishStatus通过MD5获得签名 |
返回参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://dev9.zhixueyun.com/api/v1/course-study/course-study-progress/callback?name=admin&organizationCode=zz_BAde1af01&courseId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&finishStatus=1&finishTime=1572316591952&studyTotalTime=3600&sign=xxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}Url示例:
https://dev9.zhixueyun.com/api/v1/course-study/external-activity-progress/callback请求方式
GET
验证方式
sign加签验证
请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | admin |
| organizationCode | String | 是 | 企业编码 | zz_BAde1af01 |
| externalActivityId | String | 是 | 课程ID | 5d587e40-2b30-4010-a37f-51aa5d4fbc8f |
| sign | String | 是 | 签名秘钥+name+organizationCode+courseId+finishStatus通过MD5获得签名 | |
| obligatoryFinished | int | 否 | 必修-已完成数 | 1 |
| obligatoryTotal | int | 否 | 必修-总数 | 2 |
| obligatoryUnit | int | 否 | 必修-单位(1-门, 2-学时) | 1 |
| electiveFinished | int | 否 | 选修-已完成数 | |
| electiveTotal | int | 否 | 选修-总数 | |
| electiveUnit | int | 否 | 选修-单位(1-门, 2-学时) | |
| examStatus | int | 否 | 考试状态(1-未完成, 2-未通过, 3-合格, 4-优秀) | |
| taskStatus | int | 否 | 作业状态(1-未完成, 2-已完成) | |
| studyStatus | int | 是 | 学习状态(1-学习中(默认), 2-结业(合格), 3-结业(优秀)) | |
| finishTime | long | 否 | 完成时间 | |
| seconds | int | 否 | 学时(单位秒) |
返回参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://dev9.zhixueyun.com/api/v1/course-study/external-activity-progress/callback?name=admin&organizationCode=zz_BAde1af01&externalActivityId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&obligatoryFinished=1&obligatoryTotal=2&obligatoryUnit=1&electiveFinished=1&electiveTotal=2&electiveUnit=1&examStatus=1&taskStatus=2&studyStatus=1&finishTime=1572316591952&seconds=3600&sign=xxxxxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}Url示例:
https://dev9.zhixueyun.com/api/v1/course-study/subject-progress/callback请求方式
GET
验证方式
sign加签验证
请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | |
| organizationCode | String | 是 | 企业编码 | |
| courseId | String | 是 | 学习专题ID | |
| sign | String | 是 | 签名秘钥+name+organizationCode+courseId+finishStatus通过MD5获得签名 | |
| finishStatus | int | 是 | 学习状态(0-未开始,1-学习中,2-已完成,3-已放弃 ,4-标记完成) | |
| beginTime | Long | 是 | 开始学习时间 | |
| finishTime | Long | 否 | 学习完成时间 | |
| studyTotalTime | int | 是 | 学习总时长(单位秒) | |
| finishNum | int | 否 | 已完成章节数 |
返回参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://dev9.zhixueyun.com/api/v1/course-study/subject-progress/callback?name=admin&organizationCode=zz_BAde1af01&courseId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&finishStatus=1&beginTime=1572316591952&finishTime=1592316591952&studyTotalTime=3600&finishNum=2&sign=xxxxxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}资源平台的资源以url的形式对接给客户方
课程资源url示例
https://rasdev9.zhixueyun.com/#/study/course/out-detail/6b2df830-872e-4210-b8d6-7c172b3e37ff/zxy/{token}学习专题资源url示例
https://rasdev9.zhixueyun.com/#/study/subject/out-detail/c58c9cfb-bd6f-4570-8218-e1889487f3be/zxy/{token}专题班资源url示例
https://rasdev9.zhixueyun.com/#/study/activity/out-detail/803925e5-30fc-49b7-9e26-a728dd5fcdbb/zxy/{token}注意:{token}为占位符,需要被替换为客户方用户的当前登录token。
资源方提供的资源url形式
https://domain/xxx/{token}示例
https://rasdev9.zhixueyun.com/#/study/activity/out-detail/803925e5-30fc-49b7-9e26-a728dd5fcdbb/zxy/{token}以下为资源方调用资源平台
认证流程如下:
接口描述
根据token获取用户
http请求方式
GET
请求地址(restful形式)
https://rasdev9.zhixueyun.com/api/v1/human/member/getToken/{token}请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| token | String | 是 | 用户凭证(url中的参数) | a0d75cea6cea40942848bdbc7777ba17 |
响应参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| msg | String | 是 | 是否成功 | Success | fail(成功|失败) |
| name | String | 是 | 用户名 | zhangsan |
| rootOrganizationCode | String | 是 | 用户所属的组织编码 | zz_BAde1af01 |
| fullName | String | 是 | 用户全名 | 张三 |
| sex | int | 是 | 性别(0:男,1:女) | 0 |
| String | 是 | 邮箱 | ||
| phoneNumber | String | 是 | 手机号 |
请求示例
curl https://rasdev9.zhixueyun.com/api/v1/human/member/getToken/a97d5ee3cb1793e24562f0c10922a2b9
响应示例
{
"msg": "success",
"phoneNumber": null,
"rootOrganizationCode": "zz_BAde1af01",
"headPortraitPath": null,
"sex": 0,
"name": "admin",
"rootOrganizationName": "资源共享平台",
"fullName": "超级管理员",
"id": "45626218-a4fc-41eb-8c66-022886421a10",
"headPortrait": null,
"rootOrganizationId": "ba915d93-274d-4319-8016-035508166f64",
"email": null
}异常示例
{"msg": "fail"}由于用户学习的资源最终是访问的资源方的地址,因此用户在学习资源时所产生的学习记录,进度等信息将会产生在资源方,那么资源方需要将这些信息传输给资源平台,资源平台提供了数据接收接口,那么资源方会调用这些接口,用来将用户的学习记录传给接入方系统。对于不同类型的资源,提供了不同的接口。
接口描述
同步课程学习记录数据
http请求方式
GET
验证方式
sign加签验证
请求地址
https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/course请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | |
| organizationCode | String | 是 | 企业编码 | zz_BAde1af01 |
| courseId | String | 是 | 课程ID | 5d587e40-2b30-4010-a37f-51aa5d4fbc8f |
| finishStatus | int | 是 | 学习状态0-未开始,1-学习中,2-已完成,3-已放弃 ,4-标记完成 | 1 |
| finishTime | long | 是 | 完成时间,(单位秒) | 0 |
| studyTotalTime | String | 是 | 学习总时长 | |
| sign | String | 是 | 签名 |
返回参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/course?name=admin&organizationCode=zz_BAde1af01&courseId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&finishStatus=1&finishTime=1572316591952&studyTotalTime=3600&sign=xxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}接口描述
同步专题班学习记录数据
http请求方式
GET
验证方式
sign加签验证
请求地址
https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/external-activity请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | |
| organizationCode | String | 是 | 企业编码 | |
| externalActivityId | String | 是 | 课程ID | |
| sign | String | 是 | 签名 | |
| obligatoryFinished | int | 否 | 必修-已完成数 | |
| obligatoryTotal | int | 否 | 必修-总数 | |
| obligatoryUnit | int | 否 | 必修-单位(1-门, 2-学时) | |
| electiveFinished | int | 否 | 选修-已完成数 | |
| electiveTotal | int | 否 | 选修-总数 | |
| electiveUnit | int | 否 | 选修-单位(1-门, 2-学时) | |
| examStatus | int | 否 | 考试状态(1-未完成, 2-未通过, 3-合格, 4-优秀) | |
| taskStatus | int | 否 | 作业状态(1-未完成, 2-已完成) | |
| studyStatus | int | 是 | 学习状态(1-学习中(默认), 2-结业(合格), 3-结业(优秀)) | |
| finishTime | long | 否 | 完成时间 | |
| seconds | int | 否 | 学时(单位秒) |
响应参数(json格式)
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/external-activity?name=admin&organizationCode=zz_BAde1af01&externalActivityId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&obligatoryFinished=1&obligatoryTotal=2&obligatoryUnit=1&electiveFinished=1&electiveTotal=2&electiveUnit=1&examStatus=1&taskStatus=2&studyStatus=1&finishTime=1572316591952&seconds=3600&sign=xxxxxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}接口描述
同步学习专题学习记录数据
http请求方式
GET
验证方式
sign加签验证
请求地址
https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/subject请求参数
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| name | String | 是 | 用户账号 | |
| organizationCode | String | 是 | 企业编码 | |
| courseId | String | 是 | 学习专题ID | |
| sign | String | 是 | 签名 | |
| finishStatus | int | 是 | 学习状态(0-未开始,1-学习中,2-已完成,3-已放弃 ,4-标记完成) | |
| beginTime | Long | 是 | 开始学习时间 | |
| finishTime | Long | 否 | 学习完成时间 | |
| studyTotalTime | int | 是 | 学习总时长(单位秒) | |
| finishNum | int | 否 | 已完成章节数 |
返回参数:
| 参数名 | 类型 | 必填 | 描述 | 参考值 |
|---|---|---|---|---|
| status | int | 是 | 状态0:成功1:参数校验错误2:签名认证错误3:用户未找到 | 0 |
| msg | String | 是 | 错误信息(status=0时为null, 有错误时返回) |
请求示例
curl https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/external-activity?name=admin&organizationCode=zz_BAde1af01&courseId=5d587e40-2b30-4010-a37f-51aa5d4fbc8f&finishStatus=1&beginTime=1572316591952&finishTime=1592316591952&studyTotalTime=3600&finishNum=2&sign=xxxxxxxxxxxxxxx
响应示例
{"status":0}异常示例
{"status":2,"msg": "fail"}MD5参数签名的方式
-
给资源方分配对应的key、secret
-
Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下:
a. 按照请求参数名称将所有请求参数按照字母先后顺序排序得到:key1value1key2value2...keynvaluen 字符串如:将arong=1,mrong=2,crong=3 排序为:arong=1, crong=3,mrong=2 然后将参数名和参数值进行拼接得到参数字符串:arong1crong3mrong2。
b. 将secret加在参数字符串的头部后进行MD5加密 ,加密后的字符串需大写。即得到签名Sign
资源方调用:
https://rasdev9.zhixueyun.com/api/v1/content/resource/learning/progress/subject?key=app_key&sign=BCC7C71CF93F9CDBDB88671B701D8A35&参数1=value1&参数2=value2......