在途商旅
  1. 四、事件订阅
在途商旅
  • 关于本文档
  • API调用指南
    • API列表
    • 接入流程
    • 接口通用说明
    • 通用错误码
  • 服务端接口
    • 一、鉴权管理
      • 1、接口鉴权
        • a、获取token
      • 2、单点登录
        • a、目标页概述
        • b、单点登录
    • 二、企业信息
      • 1、概述
      • 2、组织单位
        • a、概述
        • b、常见问题
        • c、场景说明
        • d、组织同步
        • f、负责人同步
      • 3、员工信息
        • 概述
        • 场景说明
        • 常见问题
        • 手机号国家编码表
        • 员工同步
        • 员工直属主管同步
        • 员工常住地同步
        • 获取职级列表
        • 获取证件类型
        • 员工信息查询
      • 4、成本中心
        • 概述
        • 常见问题
        • 场景说明
        • 成本中心(部门所属)
        • 成本中心(员工所属)
      • 5、项目
        • 概述
        • 常见问题
        • 场景说明
        • 项目同步
      • 6、法人
        • 概述
        • 常见问题
        • 法人同步
    • 三、业务数据
      • 1.出行前
        • 概述
        • 差旅申请
          • 申请单同步
          • 申请单变更前校验
          • 取消申请单提前验证
          • 申请单状态变更
          • 获取申请单
          • 获取申请单使用状态
          • 获取申请单出行概况
          • 获取差旅类型
          • 获取费用类型
      • 2.出行中
        • 订单
          • 客票状态
          • 订单查询(全量)
          • 订单查询(分页)
          • 订单确认-V1
          • 订单确认-V2
      • 3.出行后
        • 账单
          • 获取账单主信息
          • 分页获取账单主信息
          • 获取账单订单明细
          • 账单中疑异订单通知
          • 确认账单通知
        • 票据
          • 订单开票信息
          • 个付电子发票查询
          • OCR票据查询
          • 订单数电票
      • 4.工作流
        • 查询审批记录
        • 审批结束通知
        • 审批记录同步
    • 四、事件订阅
      • 1、概述
      • 2、事件列表
      • 3、数据推送
      • 4、示例代码
      • 5、需求单服务类型
      • 8、openapi-sdk
      • 6、事件订阅接口
        • a、订阅事件
        • b、删除订阅
        • c、查询订阅
    • 五、通用数据
      • 国家编码对照表
      • 获取城市列表(废弃)
      • 获取城市列表V2
    • 六、其他
      • 补贴查询
      • 自定义补贴场景明细同步
  1. 四、事件订阅

1、概述

在途系统在运行过程中,到达特定业务节点时可触发相关事件,如果您需要对应节点的数据,可注册相关事件,在途将主动推送数据到指定的接口地址上。

目前支持的事件如下:

事件列表    👈

业务回调逻辑开发步骤:
1. 企业向在途系统订阅回调接口(HTTP/HTTPS地址)
2. 企业按在途接口规范进行开发<回调接口程序>,根据不同的事件进行数据解密/转换后作相应处理,比如调用企业内部OA系统发起工作流、调用费控系统接口保存订单数据等
3. 在途商旅系统运行到回调指定的业务节点时,会调用企业订阅的<回调接口程序>

在途系统与企业回调接口的通信使用HTTP/HTTPS协议,JSON格式作为交互数据载体,数据使用AES算法对交互数据进行对称加密,AES加密密钥在订阅业务回调时指定。

一.对接流程

1.流程图

业务回调示意图2.png

2.订阅业务回调

在途提供针对回调接口参数的增删改查接口,用于向在途订阅回调接口,调用前先获取 token,回调接口参数包括:

  • aesKey,用于加解密的密钥
  • code,事件编码,对应不同的业务数据和处理方式
  • url,回调接口 url

二.开发回调接口

1.准备

通过事件订阅接口向在途提供回调定义相关参数

2.解密回调数据

在途推送给您的是在接口注册时提供的aesKey加密生成的密文,您需要自行解密后获取到对应的业务数据

请求方法: POST

Content-Type: application/json

请求参数说明:

参数说明
signature签名
timestamp时间戳
nonce随机字符串
bizData加密的业务数据
partnerCode企业编码

请求参数示例:

{
	"signature":"xpnhmg",
	"timestamp":"1584961222199",
	"nonce":"5sn5nk",
	"bizData":"ht9tyhfaljl7g9542lh52lhg96g94nkyg69a",
    "partnerCode":"snjt"
}

业务数据解密:先使用时间戳、随机字符串和加密后的数据验证签名,再用回调注册的 aesKey 使用AES算法解密业务数据,
调用EncryptionUtil.java 类中的 decrypt(CallBackRequest callBackRequest, String aesKey) 解密
具体请参考示例代码 EncryptionUtil.java

3.加密返回相应结果

您接收到在途推送的数据后,需要通过密钥加密接收结果报文后返回给商旅系统。

参数说明
signature签名
timestamp时间戳
nonce随机字符串
bizData加密的业务数据

响应参数示例:

{
	"signature":"fhh3jd",
	"timestamp":"1584961222199",
	"nonce":"aamnco",
	"bizData":"0mve3m"
}

解密后的响应 bizData 示例,其中 data 字段为 json 字符串:

{
    "error": "0", // 0:表示成功,其它表示失败
    "error_description": "success",
    "data": ""
}

响应数据加密,先用回调注册的 aesKey 使用AES算法加密业务数据,再使用时间戳、随机字符串和加密后的数据生成签名,
调用EncryptionUtil.java 类中的 EncryptCallbackResponse dealSuccessAndEncrypt(String data, String aesKey) 加密返回,
具体请参考示例代码 EncryptionUtil.java

解密后的请求业务数据为 JOSN 字符串,包含 code 和 data两个字段

JSONObject jo = JSON.parseObject(jsonData);
String code = jo.getString("code");
String data = jo.getString("data");
上一页
审批记录同步
下一页
2、事件列表
Built with