1. 开始使用

1.1. 一般约束

  • 本文档仅适用于到梦空间开放平台的合作高校
  • 接口协议:https
  • 请求方式:post
  • 批量查询数据接口重要说明:使用批量获取信息的接口时每次返回的数据限制500条,第一次查询不需要填写updateTime,第二次开始,需要把上一次调用接口返回数据中取到数据的最大updateTime值(使用接口返回的原值不要做任何修改,返回数据按照updateTime升序,只需要取最后一条数据的值即为最大值),依次循环调用接口获取全部数据,直至没有数据返回。

1.2. 接口调用方式

到梦空间提供 “中间库”请求接口地址


1.3. 请求参数

  • 请求参数中分成两部分,一部分为我们称为公共请求参数(包括openId、token、sign_type、sign);另一部分为具体参数,存放在info_content中,JSON格式,这部分我们称为业务请求参数(请参考每个业务接口说明);
  • 公共请求参数
字段名称 类型 长度 是否必填 字段说明
openId String 50 YES 到梦空间发放给合作方的ID
token String 50 YES 调用获取token(令牌)接口返回的值
sign_type String 10 YES 签名算法类型,目前支持MD5和验证签名
sign String 256 NO 签名值,详见请求签名说明
  • 业务请求参数请参考各业务接口
字段名称 类型 字段说明
info_content String 请求参数的集合(JSON串格式),最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照具体业务接入文档,签名后请将该字段值进行encode编码

1.4. 生成签名值(sign)

第三方和到梦空间交互的每一次请求都必须签名

签名所需要的数据:

数据项 说明
info_content 请求的URL参数,所有签名的源数据都是未编码的数据
signSalt 签名秘钥,由到梦空间生成并提供,并只在到梦空间和第三方之间共享,请勿泄露,调用接口时不需要提交这个参数。

签名过程如下:

  • 筛选 获取请求参数中的info_content值。
  • 拼接 将info_content组合成参数=参数值的格式,并将md5_salt= signSalt连接到字符串最后端,此时生成的字符串为待签名字符串。 原值结构:info_content=$(info_content)& md5_salt= signSalt
  • 调用签名函数 使用各自语言对应的MD5签名函数对待签名字符串进行签名(生成为32位16进制字符串)。

拼接后的待签名字符串:

info_content={"studentId":"34914298"}&md5_salt=B644510FDE4FA5DA4E0A8F5E3E308BEC

MD5加密后字符串:

0DBBE658BE9C997244BDA6D0766A2CB8

1.5. 数据安全

出于对数据的安全性考虑,到梦空间提供https协议,进行网络传输。以防止被人截取。 所有接口返回data需要aes解密。 获取token接口的key需要aes加密。

字段名称 类型 长度 是否必填 字段说明
aesKey String 256 YES aes加密的秘钥,用于调用接口加密参数或者解密接口返回值,请妥善保存,切勿泄露,非请求参数,不要在调用接口时提交
aesIv String 256 YES aes加密的偏移量,用于调用接口加密参数或者解密接口返回值,请妥善保存,切勿泄露,非请求参数,不要在调用接口时提交

1.6. 成功响应数据格式

{
        "data": "VzhO49EXeFvuhP+KShc8doV6",
        "code" : "100",
        "success" : true,
        "msg": desc_comment
 }

将返回数据中的data字段使用AES解密得到返回值。(AES128加密模式:CBC,填充模式:PKCS5Padding,秘钥、iv偏移量、data是Base64编码的加密字符串)


1.7. 异常响应数据格式

{
    "code" : code_value,
    "success" : false,
    "msg": value
}

1.8. 批量操作数据校验异常响应数据格式

#如下是批量同步课程信息操作,数据校验异常会在异常数据内增加一个error提示
{
    "code": "-10010",
        "success": false,
        "msg": "批量操作数据校验不通过",
    "data": [{
        "error": "教务处课程ID没有传。",
        "className": "java编程之道",
        "outClassId": "",
        "teacherName": "赵老师",
        "term": 1,
        "year": "2020"
    }, {
        "error": "教务处课程ID没有传。学年没有传。",
        "className": "java编程之道2",
        "outClassId": "",
        "teacherName": "赵老师",
        "term": 2,
        "year": ""
    }]
}

1.9. 数据调用顺序

  • 通过 "获取token" 拿到访问时需要的token;
  • 业务请求时再把token放到请求头再传入业务接口。

1.10. 公共响应代码

  • 以下为公共接口响应代码,接口特有的响应代码在各个接口中具体说明。
编码 字段说明 可采取行动
100 返回成功 继续接下来的业务流程
500 服务端错误 联系到梦空间排查
110009 token令牌不对 token不存在或已失效(过期)
110010 无效签名值 检查签名方法

1.11. Demo下载

java

go

python

Copyright © 5idream.net 2018 all right reserved该文件修订时间: 2024-12-05 11:51:30

results matching ""

    No results matching ""