@zhuhf
        
        2017-09-27T04:03:17.000000Z
        字数 1719
        阅读 2292
    | 字段 | 描述 | 是否必须 | 
|---|---|---|
| pageNumber | 页号,从1开始 | 是 | 
| pageSize | 每页数量 | 是 | 
| search | like '%search%' | 否 | 
| sort | 排序字段 | 否 | 
| order | ASC 或者 DESC | 否 | 
| 字段 | 描述 | 
|---|---|
| code | 0表示成功,其他表示失败 | 
| desc | 成功或者失败描述信息 | 
| data | 固定节点,JSON对象 | 
| total | 多条数据,表示总数量 | 
| rows | 多条数据,JSON数组 | 
{
    "code": "0",
    "desc": "登录成功",
    "data": {
    }
}
{
    "code": "0",
    "desc": "登录成功",
    "data": {
        "total": 0,
        "rows":[]
     }
}
使用AES加解密,AES/CBC/PKCS5Padding,密钥长度128,向量默认16个0。
| 字段 | 描述 | 
|---|---|
| imei | 设备唯一Id | 
| tt | 终端类型,Android、iOS、Web | 
| vc | 终端版本号,2.1.2 | 
| ts | 终端时间戳,UNIX毫秒 | 
| sign | 终端请求参数、头信息等排序之后,Hash生成的校验值 | 
公式:sign=SHA-256(prefix/head/query)
通过“授权码”来识别是否来自系统的合法请求,系统与每一个机构之间的“授权码”都不同。
机构需要鉴权是否来自系统合法用户的请求,步骤如下: 
1. 用户携带 accessToken、userType ** 与  **orgId 访问机构 API; 
2. 机构 API 通过  accessToken ** 、  **userType、orgId ** 以及“授权码”来向系统获取用户的 **手机号、用户类型、expiredTime 等; 
3. 通过 手机号 以及 用户类型 来识别是否是本机构的用户; 
4. 如果是本机构用户,则向机构表 authorization 插入相关数据; 
5. 后续的请求,如果 authorization 表的 accessToken + userType 存在且有效,则认为是合法请求; 
6. 如果不存在,继续 1- 4 步,最后更新或者插入 authorization 表数据; 
7. 当然,如果 accessToken + userType 过期了,则拒绝服务,用户需要向系统更换令牌后再次访问机构 API。
| 错误码 | 描述 | 
|---|---|
| 40000 | 服务器内部错误 | 
| 40001 | 无效令牌,不存在或者过期 | 
| 40002 | 用户未注册 | 
| 40003 | 用户已存在 | 
| 40004 | 加解密失败 | 
| 40005 | 手机号已在机构注册 | 
| 40006 | 验证码错误 | 
| 40007 | 撤销请假失败 | 
| 40008 | 课程不允许请假 | 
| 40009 | 请假失败 | 
| 40010 | 参数签名校验失败 | 
| 40011 | 短信发送太频繁 | 
| 40012 | 短信发送数量超过上限 |