电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

事件对接说明(回调接口要求)

来源:金蝶云社区作者:金蝶2024-09-235

事件对接说明(回调接口要求)

变更记录


产品版本更新内容更新日期
V6.0.6初始版本2024年01月17日
V6.0.13事件推送支持签名和加密2024年06月14日




1 介绍

开放事件订阅时,要求第三方系统提供一个可直接访问的Webhook回调接口,当事件触发时,系统会调用该接口向第三方系统传递事件消息。下面是平台对回调接口要求。

为保障数据传输安全,防止传输过程中数据被篡改和泄露,从V6.0.13版本开始,开放事件支持签名和加密。用户可以在事件订阅推送页面配置签名(页面必选,对接方也可不验签)和加密(可选)策略,操作详情见 事件推送订阅 ,平台在推送事件前会根据配置进行请求签名和数据加密。回调接口需要实现对应的验签和解密算法才能拿到事件数据。

事件触发时序图


2 回调接口协议

支持http/https协议。


3 请求说明

3.1 请求方式

POST+ application/json

3.2 请求参数

 请求头(Header)

参数参数类型是否必填参数说明
x-kem-request-timestamp长整数是 时间戳
x-kem-request-nonce字符串随机数
x-kem-signature字符串消息签名,防止请求截获篡改
x-kem-encrypt-iv字符串初始向量,用于数据解密 



请求体-加密报文

参数
参数类型是否必填参数说明
encrypt字符串加密后的密文


参数示例:

{"encrypt":"TgwQHnE78p83RiqIiuPSyMSjv89Aj0MBhvcd5Pq3mIXxpwF4YWOi/TARaDnAo0WkgATJwl5p13KznUKJJ25NDQylO3VebDsIXuN3hvS93qb2v6gkDuF9IaEDOUdOBxJhYJKcfX2o3wvAU84lfqH4F8yqLOGsSsljUvNKeWKpEPBgpn/+ZDS3v+K9Gi8cF0Ix5A/DMeBLkqO5sJQuuPb5ni5W7YLEfZrPMQh1r2BcaKqJ8wUrz6e8ZyfAGJ4s38OMIzEflHdX5FHjsQNJ4CgqsnUHAynE4nZRhBYrVLiVba3SBqqr+Fw8H3OaAuN0G5RijCyItrOUtG20z9UFEPF+LqGJ9XqroAGUJ0ijK0V9jTb0ExEibNxjCtYMGzthbMOo"}

注意:加密是对整个消息体做的加密。


请求体-不加密或解密报文

参数参数类型是否必填参数说明
eventNumber字符串触发事件编码
msgId长整数订阅执行实例 
entityNumber字符串变化的业务对象编码
operation字符串业务对象操作方式
data 结构事件传递参数 
 -xxx -否 事件参数xxx


参数示例:

{
    "data":{
        "id":"1858013541517285376",
        "number":"eeee",
        "name":"eeee",
        "enable":"1",
        "status":"C",
        "remark":"",
        "creator":"1754371843654946816",
        "createtime":"2024-01-08 13:41:07.472",
        "modifytime":"2024-01-08 13:41:14.326",
        "modifier":"1754371843654946816"
    },
    "eventNumber":"kdtest.kemopenevt.osc.open.sortdelete",
    "msgId":"1858013636274991104",
    "entityNumber":"openapi_custom_sort",
    "operation":"save"
}


 4 验签说明

从V6.0.13版本后,所有开放事件推送必须进行请求签名,确保回调地址收到的请求来至于可信的源。用户可在事件订阅推送页面配置签名策略和签名密钥,签名策略支持HMAC_SHA_256和SHA_256两种。请根据页面配置的签名策略和密钥,使用对应的算法进行签名计算。

注意:V6.0.13版本后,开放事件推送时必须加签,所以订阅页面必须配置签名策略和密钥,对接方可选择验签或不验签,都不影响事件参数传递,但建议对接方做验签处理,避免传输过程中数据被篡改。

4.1 验签过程

1、从请求中获取如下参数

  • timestamp:时间戳,获取请求头中的 x-kem-request-timestamp

  • nonce:数据数,获取请求头中的 x-kem-request-nonce

  • signature:消息签名,获取请求头中的  x-kem-signature

  • body:接收的请求体。

2、订阅推送页面设置的签名密钥 signsecretkey

3、组装签名内容:signsecretkey + timestamp + nonce + body;

4、用订阅推送页面配置的签名算法对签名内容进行签名;

5、将签名结果转为16进制字符串,并与请求头中 x-kem-signature 签名内容进行比较是否一致。

4.2 Java示例代码

以 HMAC_SHA_256为例:

public String calculateSignature(String signsecretkey, String timestamp, String nonce, String bodyString) throws NoSuchAlgorithmException, InvalidKeyException {
   String content = signsecretkey + timestamp + nonce + bodyString;
   
   Mac hmacSHA256 = Mac.getInstance("HmacSHA256");
   SecretKe

事件对接说明(回调接口要求)

变更记录产品版本更新内容更新日期V6.0.6初始版本2024年01月17日V6.0.13事件推送支持签名和加密2024年06月14日1 介绍开放事件订阅时,要求...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信