泛微E9鉴权

调用OA鉴权接口的过程

认证流程时序图

第一步、注册许可

请求地址:

​ http://泛微服务地址/api/ec/dev/auth/regist

请求方式:post

请求头部参数(request headers):

参数名必选类型说明
appidstring许可证号码,泛微提供
cpkstring异构系统公钥(无用,但是必传,可传123

返回参数说明

参数名类型说明
statusboolean响应状态。true:成功,false:失败
codeString响应码。0代表成功
errcodeString错误码。0代表成功(可忽略)
msgString响应信息
msgShowTypeString信息显示类型。默认“none”
secrit(或secret)String秘钥信息。注意此处secrit单词拼写错误(原词为:secret),请使用 secrit获取结果
spkString系统公钥信息

对应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:

请求方式:

  • POST

请求头部参数(request headers):

参数名必选类型说明
appidstring许可证号码,泛微提供(同第一步)
timeinttoken过期时间(单位:秒,不传默认1800秒,也就是30分钟过期)
secretstring通过spk(第一步得到)对secret(第一步得到)进行RSA加密后的密文

返回参数说明

参数名类型说明
statusboolean响应状态。true:成功,false:失败
codeString响应码。0代表成功
msgString响应信息
msgShowTypeString信息显示类型。默认“none”
tokenString认证通过的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:

请求方式:

  • GET | POST | PUT | DELETE

  • Content-Type application/x-www-form-urlencoded;charset=utf-8

    请求头headers信息

参数名必选类型说明
appidString泛微系统提供,同第一步
tokenString第二步获取到的token的值
useridString泛微系统的人员主键通过第一步注册许可时返回spk公钥进行加密生成的密文
Content-TypestringPOST请求必须设置Context-Type为”application/x-www-form-urlencoded; charset=utf-8”

返回参数说明

参数名类型说明
statusboolean响应状态。true:成功,false:失败
codeString响应码。0代表成功
msgString响应信息
msgShowTypeString信息显示类型。默认“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

访问上述链接,参照如下图的配置说明,对系统进行配置

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miki_souls

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值