# ddes-openapi-sdk-java
**Repository Path**: didiopensource/ddes-openapi-sdk-java
## Basic Information
- **Project Name**: ddes-openapi-sdk-java
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-06-12
- **Last Updated**: 2025-10-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 滴滴企业级开放接口SDK[`Java版本`]
## 概述
---
- 滴滴企业级开发接口SDK,便捷调用开放平台API,目前包括以下服务:
- 接口认证[auth]
- 审批 [行前(approval)、行后(afterapproval)、外部(outapproval)]
- 账单 [bill]
- 成本中心 [budgetcenter]
- 城市信息 [city]
- 扩展信息 [extend]
- 公司主体 [legalentity]
- 单点登录 [login]
- 用户信息 [member]
- 订单 [order]
- 职级 [rank]
- 制度 [regulation]
- 角色 [role]
- 外部人员 [traveler]
- 工作地点 [workplace]
具体可以访问 [管理API对接文档(2024版)](https://opendocs.xiaojukeji.com/version2024) 查看。
## 运行环境
---
- JDK 1.8
## 安装方法
---
### 1、Maven 仓库
```xml
* 说明: * 查询公司在滴滴侧的具体信息; * 通过获取的信息用于确认相关的配置信息,可以用于同步滴滴ES后台的信息; * 只返回有效的公司信息。不包含禁用和过期的公司主体信息。需要返回全部的,是不是需要重新封接口。 */ public static void getLegalEntityTest(ApiClient client) throws Exception { GetLegalEntityRequest request = GetLegalEntityRequest.builder() .companyId("替换成自己的companyId") .legalEntityId("xxx") .build(); GetLegalEntityApiReply response = client.legalentity().v1().getLegalEntity(request); if (response != null) { System.out.println(JacksonUtils.toJson(response)); } System.out.println("getAdjustBillDataResultTest end"); } } ``` 2、使用整体加密 ```java public class EncryptTest { public static void main(String[] args) { Config config = new Config() .setClientId("your_client_id") .setClientSecret("your_client_secret") .setSignKey("your_sign_key") .setEnableAES(true) // 启用整体加密[默认为false] .setAesKey("your_aes_key") // 设置AES密钥[enableAES为false的时候,该值无效] .setEncryptType(EncryptTypeEnum.AES128); // 设置加密方式[enableAES为false的时候,该值无效] ApiClient client = new ApiClient(config); // 接口的调用不需要任何额外的操作,SDK会自动处理加密和解密 getLegalEntityTest(client); } /** * 公司主体查询 *
* 说明: * 查询公司在滴滴侧的具体信息; * 通过获取的信息用于确认相关的配置信息,可以用于同步滴滴ES后台的信息; * 只返回有效的公司信息。不包含禁用和过期的公司主体信息。需要返回全部的,是不是需要重新封接口。
*/
public static void getLegalEntityTest(ApiClient client) throws Exception {
GetLegalEntityRequest request = GetLegalEntityRequest.builder()
.companyId("替换成自己的companyId")
.legalEntityId("xxx")
.build();
GetLegalEntityApiReply response = client.legalentity().v1().getLegalEntity(request);
if (response != null) {
System.out.println(JacksonUtils.toJson(response));
}
System.out.println("getAdjustBillDataResultTest end");
}
}
```
3、更多示例
| 示例模块 | 示例代码路径 | 包含接口 | 接口地址 |
|--------|---------------------------------|----------------------|-----------------------------------------------|
| 接口认证 | sample/AuthSample.java | 接口认证(获取access_token) | /river/Auth/authorize |
| 行后授权 | sample/AfterapprovalSample.java | 行后审批结果同步 | /river/AfterApproval/createPersonalReceipt |
| | | 行后审批完订单查询个人付款单 | /river/AfterApproval/getPersonalReceiptOrder |
| 审批对接 | sample/ApprovalSample.java | 创建申请单(已按业务拆分) | /river/Approval/create |
| | | 修改申请单(已按业务拆分) | /river/Approval/update |
| | | 取消申请单 | /river/Approval/cancel |
| | | 查询审批单列表 | /river/Approval/getOrder |
| | | 查询申请单详情 | /open-apis/v1/approval/detail |
| | | 外部审批处理 | /river/Approval/pass |
| 外部审批处理 | sample/OutapprovalSample.java | 外部通知审批单状态变更 | /river/OutApproval/Status |
| 财税信息 | sample/BillSample.java | 账单列表 | /river/Bill/get |
| | | 已出账单(已按业务类型拆分) | /river/Bill/detail |
| | | 未出账单(已按业务类型拆分) | /river/Bill/getNotGeneratedBillDetail |
| | | 网约车,出租车交易明细 | /river/Bill/transactionDetail |
| | | 账单汇总查询-商旅、网约车、出租车 | /river/Bill/summary |
| | | 网约车、商旅账单树查询 | /river/Bill/getBillStructure |
| | | 商旅、网约车账单确认 | /river/Bill/confirm |
| | | 调账提交 | /river/Bill/adjustBillData |
| | | 调账结果查询 | /river/Bill/queryAdjustBillDataResult |
| 部门或项目 | sample/BudgetcenterSample.java | 部门或项目查询 | /river/BudgetCenter/get |
| | | 部门或项目新增 | /river/BudgetCenter/add |
| | | 部门或项目修改 | /river/BudgetCenter/edit |
| | | 部门或项目停用 | /river/BudgetCenter/del |
| 城市 | sample/CitySample.java | 国家查询(全量获取国际ID) | /river/DemeterAres/Country/index |
| | | 全量开城城市列表查询 | /open-apis/v1/city/list |
| 地点 | sample/WorkspaceSample.java | 地点新增 | /open-apis/v1/workplace/create |
| | | 地点删除 | /open-apis/v1/workplace/del |
| | | 地点修改 | /open-apis/v1/workplace/update |
| 外部出行人 | sample/TravelerSample.java | 外部出行人新增 | /open-apis/v1/traveler/create |
| | | 外部出行人修改 | /open-apis/v1/traveler/update |
| | | 外部出行人删除 | /open-apis/v1/traveler/del |
| 角色 | sample/RoleSample.java | 角色查询 | /river/Role/get |
| 制度 | sample/RegulationSample.java | 制度列表 | /river/Regulation/get |
| | | 制度详情 | /river/Regulation/detail |
| 职级 | sample/RankSample.java | 职级新增 | /open-apis/v1/rank/create |
| | | 职级更新 | /open-apis/v1/rank/update |
| | | 职级删除 | /open-apis/v1/rank/del |
| | | 职级查询 | /river/Rank/getRanks |
| 订单 | sample/OrderSample.java | 订单号列表查询 | /open-apis/v1/order/list |
| | | 机票订单详情查询 | /api-gateway/g/flight/orderDetail |
| | | 酒店订单详情查询 | /api-gateway/g/hotel/orderDetail |
| | | 火车票订单详情查询 | /api-gateway/g/train/orderDetail |
| | | 用车订单详情查询 | /river/Order/detail |
| | | 用车列表 | /river/Order/get |
| | | 机票预估价获取 | /api-gateway/g/flight/info/estimatePrice |
| | | 火车票直达列表 | /api-gateway/train/queryLeftTicket |
| | | 火车票中转车次列表 | /api-gateway/g/train/transfer/queryLeftTicket |
| 用户 | sample/MemberSample.java | 用户查询~员工列表(批量查询) | /river/Member/get |
| | | 用户查询~员工明细 | /river/Member/detail |
| | | 员工限额查询 | /river/Member/getQuota |
| | | 用户新增 | /river/Member/single |
| | | 用户修改 | /river/Member/edit |
| | | 用户删除 | /river/Member/del |
| 单点页面 | sample/LoginSample.java | 单点请求 | /river/Login/getLoginEncryptStr |
| 公司主体 | sample/LegalentitySample.java | 公司主体查询 | /river/LegalEntity/get |
| | | 公司主体新增 | /river/LegalEntity/add |
| | | 公司主体修改 | /river/LegalEntity/edit |
| | | 公司主体停用 | /river/LegalEntity/del |
| 拓展 | sample/ExtendSample.java | 拓展信息批量创建 | /river/ExtendInfo/BatchSync |
| | | 档案状态处理 | /river/ExtendInfo/Status |
| | | 拓展信息查询 | /river/ExtendInfo/Get |
---
`📢注意`: 请替换代码中的`clientId`、`clientSecret`和`signKey`为实际的值,以及替换实际入参中的`companyId`
---
## 特殊说明
1、接口中以obj结尾的字段均为SDK特有字段,在文档中无Obj结尾,文档中为字段类型为json-string,SDK中可直接使用对象,SDK自动完成对象转为json-string的过程。
如(仅保留了特殊处理的Obj字段及源字段信息):
```java
public class CreateApprovalRequest extends BaseReq {
/**
* 扩展信息,扩展信息,自定义字段;最长不大于 500 字符;(必须为json字符串);默认为空字符
*/
@JsonProperty("extra_info")
private String extraInfo;
/**
* 扩展信息。转成json赋值给extra_info字段
*/
@JsonProperty("extra_info__obj__")
private Map