获取session接口
- 接口:由第三方提供,我们配置到系统中。
- Method:POST
- 数据格式:JSON
- 接口说明:此接口用于生成身份验证的token,使用将实现免登录的功能。
- 文档末尾有文档版本记录
参数:
请求参数
字段 |
类型 |
释义 |
必填 |
account |
String |
账户 |
TRUE |
secret |
String |
账户密码 |
TRUE |
timestamp |
long |
时间戳 |
TRUE |
platform |
String |
渠道 |
TRUE |
userId |
Integer |
云简的员工号(针对一些渠道必须有人员才能获取session,否则不需要验证这个参数) |
FLASE |
userNo |
String |
渠道对接的员工主键(针对一些渠道必须有人员才能获取session,否则不需要验证这个参数) |
FLASE |
sign |
String |
加密串 |
TRUE |
返回参数
字段 |
类型 |
释义 |
必填 |
resCode |
String |
代码 |
TRUE |
resMsg |
String |
错误描述,正确用success |
TRUE |
sessionId |
String |
签名,代码不为“10000”时,这个可以为空 |
FLASE |
timeLimit |
long |
有效期至,13位时间戳,代码不为“10000”时,这个可以为空 |
FLASE |
注:
生成签名 sign 的时候,将颁发的 signKey 加入到传递的参数中,参与加密
传递的参数(包含 signKey)按照参数名升序排序,然后,以&形式连接(类似格式为
a=xxx&b=xxx&c=xxx...),生成小写的 md5 串
signKey 不要参与参数传递,只参与生成 sign
其中:account,secret,signKey 由渠道方提供
加密 java 示例代码
private static MessageDigest md5 = null;
public String generateSign(TreeMap map) throws UnsupportedEncodingException {
Map<String, String> resultMap = sortMapByKey(map);
String str = new String();
for (Map.Entry<String, String> entry : resultMap.entrySet()) {
if (str.equals("")) {
str = entry.getKey() + "=" + entry.getValue();
} else {
str += "&" + entry.getKey() + "=" + entry.getValue();
}
}
String sign = getMd5(str);
return sign;
}
public static Map<String, String> sortMapByKey(Map<String, String> map) {
if (map == null || map.isEmpty()) {
return null;
}
Map<String, String> sortMap = new TreeMap<String, String>(
new MapKeyComparator());
sortMap.putAll(map);
return sortMap;
}
public static String getMd5(String str) throws UnsupportedEncodingException {
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
System.out.println(e.getMessage());
}
byte[] bs = md5.digest(str.getBytes("utf-8"));
StringBuilder sb = new StringBuilder(40);
for (byte x : bs) {
if ((x & 0xff) >> 4 == 0) {
sb.append("0").append(Integer.toHexString(x & 0xff));
} else {
sb.append(Integer.toHexString(x & 0xff));
}
}
return sb.toString();
}
示例:
请求数据
{
"account": "",
"secret": "",
"timestamp": 0,
"platform": "meiya",
"userId ": "TB123",
"userNo ": "REQ001",
"sign ": ""
}
返回数据
{
"resCode": 10000,
"resMsg": "success",
"sessionId": "",
"timeLimit": 1
}
文档版本记录
版本号 |
编写日期 |
更改内容 |
V1.0 |
2020.02.01 |
初稿 |
V1.1 |
2023.06.01 |
减少一个userId,增加一个userNo |