调用OA鉴权接口的过程
认证流程时序图

第一步、注册许可
请求地址:
 http://泛微服务地址/api/ec/dev/auth/regist
请求方式:post
请求头部参数(request headers):
| 参数名 | 必选 | 类型 | 说明 | 
|---|---|---|---|
| appid | 是 | string | 许可证号码,泛微提供 | 
| cpk | 是 | string | 异构系统公钥(无用,但是必传,可传123) | 
返回参数说明
| 参数名 | 类型 | 说明 | 
|---|---|---|
| status | boolean | 响应状态。true:成功,false:失败 | 
| code | String | 响应码。0代表成功 | 
| errcode | String | 错误码。0代表成功(可忽略) | 
| msg | String | 响应信息 | 
| msgShowType | String | 信息显示类型。默认“none” | 
| secrit(或secret) | String | 秘钥信息。注意此处secrit单词拼写错误(原词为:secret),请使用 secrit获取结果 | 
| spk | String | 系统公钥信息 | 
对应JAVA请求示例代码
String publicKey = "123";
//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post(address + "/api/ec/dev/auth/regist")
  .header("appid", APPID)
  .header("cpk", publicKey)
  .timeout(2000)
  .execute().body()
  Map<String, Object> datas = JSONUtil.parseObj(data); 
工具调用截图

第二步、获取token
请求URL:
- http://泛微服务地址/api/ec/dev/auth/applytoken
 
请求方式:
- POST
 
请求头部参数(request headers):
| 参数名 | 必选 | 类型 | 说明 | 
|---|---|---|---|
| appid | 是 | string | 许可证号码,泛微提供(同第一步) | 
| time | 否 | int | token过期时间(单位:秒,不传默认1800秒,也就是30分钟过期) | 
| secret | 是 | string | 通过spk(第一步得到)对secret(第一步得到)进行RSA加密后的密文。 | 
返回参数说明
| 参数名 | 类型 | 说明 | 
|---|---|---|
| status | boolean | 响应状态。true:成功,false:失败 | 
| code | String | 响应码。0代表成功 | 
| msg | String | 响应信息 | 
| msgShowType | String | 信息显示类型。默认“none” | 
| token | String | 认证通过的token信息。(默认30分钟内有效) | 
JAVA secret 加密示例:
// 公钥加密,所以RSA对象私钥为null RSA rsa = new RSA(null, spk); //对秘钥secret进行加密 //encryptSecret 加密后的密钥 String encryptSecret 加密后的密钥 = rsa.encryptBase64(secret, CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);
在线加密
https://the-x.cn/Cryptography/Rsa.aspx

对应JAVA示例代码:
//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post(address + "/api/ec/dev/auth/applytoken")
  .header("appid", APPID)
  .header("secret", encryptSecret)
  .header("time", "5*1000")
  .execute().body();
Map<String, Object> datas = JSONUtil.parseObj(data); 
工具调用截图

第三步、调用业务接口
以创建OA流程业务接口为例:
请求URL:
- http://泛微服务地址/api/workflow/paService/doCreateRequest
 
请求方式:
-  
GET | POST | PUT | DELETE
 -  
Content-Type application/x-www-form-urlencoded;charset=utf-8
请求头headers信息
 
| 参数名 | 必选 | 类型 | 说明 | 
|---|---|---|---|
| appid | 是 | String | 泛微系统提供,同第一步 | 
| token | 是 | String | 第二步获取到的token的值 | 
| userid | 是 | String | 泛微系统的人员主键通过第一步注册许可时返回spk公钥进行加密生成的密文 | 
| Content-Type | 否 | string | POST请求必须设置Context-Type为”application/x-www-form-urlencoded; charset=utf-8” | 
返回参数说明
| 参数名 | 类型 | 说明 | 
|---|---|---|
| status | boolean | 响应状态。true:成功,false:失败 | 
| code | String | 响应码。0代表成功 | 
| msg | String | 响应信息 | 
| msgShowType | String | 信息显示类型。默认“none” | 
示例代码如下:
 RSA rsa = new RSA(null,spk);
//createrid  为泛微系统的人员主键,必须传入OA系统人员表的人员主键,由于OA的流程创建用户校验,且会做为OA流程的创建人
String encryptUserid = rsa.encryptBase64(createrid, CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);
//调用ECOLOGY系统接口
String data = HttpRequest.post(address + "/api/workflow/paService/doCreateRequest")
  .header("appid", APPID)//泛微系统提供,同第一步
  .header("token", token)//第二步获取到的token的值
  .header("userid", encryptUserid)//加密后的createrid
  .header("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
  //map为业务数据参数
  .form(map)
  .execute().body(); 
2、泛微系统相关配置
泛微系统内部人员查看,第三方开发人员不用关注该部分
鉴权接口说明文档链接如下:
https://e-cloudstore.com/doc.html?appId=af09c25938714c26b9736f535ca20fc9#1%E3%80%81%E9%85%8D%E7%BD%AE%E6%8E%A5%E5%8F%A3%E7%99%BD%E5%90%8D%E5%8D%95
访问上述链接,参照如下图的配置说明,对系统进行配置




















