基于员工获取sessionId接口
- 接口:由第三方提供,我们配置到系统中。
- Method:POST
- 数据格式:JSON
- 接口说明:此接口用于生成调用第三方商旅接口所需的身份令牌(sessionId)。云简的单点登录、人员同步、部门同步、申请单同步、账单同步等流程,均通过本接口获取 sessionId。
- 单点登录场景传入真实员工的 userId;人员、部门、申请单、账单等同步场景传入该渠道配置的管理员账号 userId(由云简侧自动确定,第三方按渠道账户校验即可)。
- 云简会缓存 sessionId 直至 timeLimit 过期,缓存有效期内不会重复请求本接口;业务接口返回 9998(身份验证失效)时,云简会删除缓存并重新调用本接口一次。
- 当前所有渠道均使用本接口获取 sessionId,基于租户生成 sessionId 的接入方式暂未启用。
- 文末有版本说明
请求参数
| 字段 | 类型 | 释义 | 必填 |
|---|---|---|---|
| account | String | 账户 | 是 |
| secret | String | 账户密码 | 是 |
| timestamp | String | 13位毫秒时间戳的请求时间,如果此时间与当前时间相差较大,则判定请求失效。 | 是 |
| platform | String | 渠道标识,与云简后台配置的渠道一致 | 是 |
| userId | Integer | 云简的员工编号;人员、部门、申请单、账单等同步场景下为该渠道配置的管理员账号编号 | 是 |
| sign | String | 基于双方线下约定的signKey生成的加密串,signKey是不参与接口传递的,基于MD5算法加密后,双方可以基于MD5不可被逆向解密的特性,确认对方有正确的signKey且传递的参数没有被篡改。生成逻辑和示例代码 | 是 |
参与签名(sign)的参数为 account、secret、timestamp、platform、userId 加上 signKey,按键名升序以 & 连接后取小写 MD5,与生成sign的说明一致。
说明:
userNo、source为后续演进预留的字段,当前版本不传递。
返回参数
| 字段 | 类型 | 释义 | 必填 |
|---|---|---|---|
| resCode | String | 代码 | 是 |
| resMsg | String | 错误描述,正确用success | 是 |
| sessionId | String | 身份令牌,代码不为“10000”时,这个可以为空 | 否 |
| timeLimit | long | 有效期至,13位时间戳,代码不为“10000”时,这个可以为空 | 否 |
说明:只有 resCode 为 10000 时云简才会取用 sessionId,其余返回值云简按获取失败处理(业务侧记录“生成身份验证失败”);timeLimit 用于计算云简侧 sessionId 缓存的过期时间。
请求参数示例
{
"account": "exampleAccount",
"secret": "examplePassword",
"timestamp": "1618708800000",
"platform": "examplePlatform",
"userId": 12345,
"sign": "exampleSign"
}
返回参数示例
{
"resCode": "10000",
"resMsg": "success",
"sessionId": "exampleSessionId",
"timeLimit": 1622505600000
}
版本说明
| 版本号 | 编写日期 | 更改内容 |
|---|---|---|
| V1.0 | 2020.02.01 | 初稿 |
| V1.1 | 2023.06.01 | 减少一个userId,增加一个userNo(该调整未启用,当前仍传递userId) |
| V1.2 | 2024.07.25 | 优化代码描述,优化请求示例和返回示例,增加soure字段,为未来去platform做准备(该调整未启用,当前仍传递platform) |
| V1.3 | 2026.09.11 | 按当前实现修正:明确实际传递 platform、userId;userNo、source 暂未启用;补充 sessionId 缓存、9998 失效重试与 resCode 判定说明 |