获取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

results matching ""

    No results matching ""