业务说明和提示
获取token:此操作通过提交调用api的url和用户名,私钥生成token,Token有效时常为15分钟。
API_FUNCTION_NAME
|
构造后的API Endpoint
|
---|---|
getToken | https://mall.okcert.cn/jeecg/okcertController.do?getToken |
业务参数
参数名称 | 类型 | 是否必填 | 数据说明及要求 | 数据举例 |
---|---|---|---|---|
username | String | 必填 | 调用api的用户名。 | 张三 |
signed | String | 必填 | 用户根据私钥签名值。 | 结果由私钥签名方法sign返回。 |
获取token序列图
私钥签名方法
私钥签名方法
public static String sign(String userName,String privateKey) {
try {
String pre="-----BEGIN RSA PRIVATE KEY-----";
String end="-----END RSA PRIVATE KEY-----";
if(privateKey.indexOf(pre)!=-1) {
int prelength = pre.length();
int endlength=privateKey.length()-end.length();
privateKey=privateKey.substring(prelength, endlength);
}
privateKey=privateKey.replaceAll("\\r|\\n", "");
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(privateKey));
KeyFactory keyf = KeyFactory.getInstance("RSA");
PrivateKey prikey=keyf.generatePrivate(priPKCS8);
String content=userName;
java.security.Signature signature=java.security.Signature.getInstance("SHA256WithRSA");
signature.initSign(prikey);
signature.update(content.getBytes());
byte[] sign=signature.sign();
String signed=Base64.encodeToString(sign);
return signed;
}catch(Exception e) {
e.printStackTrace();
return null;
}
}
响应参数
参数 | 类型 | 描述 | 示例 |
---|---|---|---|
token | String | 携带返回的数据。 | / |
msg | String | 返回携带的提示信息。 | 获取token成功 |
code | String | 当正确时,返回的为0, 其他参数代表具体含义,详见码表。 | 0 |
成功响应
成功响应
{
"attributes"
:
{
"token"
:
"eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1Nzg2NDY4NjMsInN1YiI6InVuaXNpbXMiLCJzaWdu
}
,
"code"
:
"0"
,
"msg"
:
"获取token成功"
}
|
失败响应
失败响应
{
"attributes"
:
"null"
,
"code"
:
"1"
,
"msg"
:
"获取token失败"
}
|