# 开放接口
# 使用说明
- 使用 appkey + secret 调用授权接口获取 用于调用 服务端 api 接口的 access_token
- 调用员工接口 将预定流程中需要用到的员工信息推送到我方系统(订单处理过程中涉及的 审批人 联系人 旅客等信息)
- 调用审批管控预约接口 生成产品查询列表的地址
- 使用 appkey + secret 调用授权接口获取 用于调用 客户端 web 接口的 access_token (用于web访问的 一次性 access_token 有效期为5分钟且只能使用一次 重复调用接口请重新生产)
- 引导预定人打开授权入口页面 ,授权成功的跳转地址传入 产品列表的地址(pc版支持iframe 及 新开窗口方式 APP及微信端请直接跳转到授权页面 不建议使用iframe嵌套 )
- 预定人在产品列表选择产品(航班 车次 酒店)后进入下单页面完成下单预定操作 通过在免登授权入口传入订单列表页面地址可以免登进入我方系统 订单列表 及 订单详情页面 发起退票改签 等操作 备注:机票下单测试请预定两小时后航班
# 签名规则(新)
签名规则:请将 secret+timestamp+接口参数
连接成字符串,计算md5值后即为signature,所有接口都需传入appkey timestamp signature 等参数
后端接口:请将 appkey timestamp signature 添加到 http header 信息中 验签数据是完整的请求数据 请勿将json数据按属性拆开分别签名 appkey不参与签名
前端接口:请将 appkey timestamp signature 采用 URL query 的方式传输 签名数据取 queryString (剔除 signature 参数, appkey timestamp不会剔除)作为业务参数计算签名
客户应充分确保 secret 的保密性 请勿将secret返回到前端或作为参数在前端传输
签名数据直接读取传入数据,没有额外的排序规则,请务必保证传入的数据与签名数据顺序一致
编码格式:UTF-8
# 签名规则(旧)
说明:接口上线初期应客户要求兼容第三方接口,新客户接入时对刷新授权机制诟病较多,现阶段已不再维护第三方兼容接口,我司已调整接口验证机制 后续接入请采用新的签名规则
接口签名方案:将secret timestamp 及参数连接成字符串,根据字符串计算出md5值即为signature , 所有接口要求传入业务参数同时传入timestamp signature等参数
POST 请求请将signature 及 access_token 添加到 http header 信息中 timestamp 与其他业务参数采用同类方式传输 content-type为application/json 的请求 验签数据是完整的请求数据 请勿将json按属性拆开分别签名
GET 请求请将signature access_token timestamp 采用 URL query 的方式传输 签名数据直接取 queryString 后去除 signature 参数后 按照签名规则进行签名
签名数据直接读取传入数据,没有额外的排序规则,请务必保证传入的数据与签名数据顺序一致
示例
请求URL :
https://lcsl.test.ecsweb.jinyantrip.net/api/adapter/oauth/entry?access_token=QzM2MEQ5QTdDMkU5M0Q0Qzk4MjI4Q0Y4MjU4RjRFRUM=&userid=S00008540989×tamp=1597309622715&redirect_uri=http%3A%2F%2Flcsl.test.ecsapp.jinyantrip.net%2Fmall%2Fhotel%2Fbooking%3FBookingType%3D1529%26AdultCount%3D0%26ServiceType%3DHotelService%26pageIndex%3D0%26DepartDate%3D%26DepartDateEnd%3D2020-09-30%26ReturnDate%3D%26ReturnDateEnd%3D2020-09-30%26Consumers%3D%5B%5D%26ApplyArea%3D1126%26ZoneID%3D%26MustConform%3D1151%26RuleID%3DBtripRule5AFBAA0CE6F042DEAFE2E1674532CC99%26FlowID%3DBtripFlow5AFBAA0CE6F042DEAFE2E1674532CC99&signature=a9322273081b8738b1a95974210003aa
签名参数 :
a25RMGZHRWFjR1NFUmx6ejBQRVJVc2dhcGN6eXAyS1ZOdDlqZERsMw==1597309622715access_token=QzM2MEQ5QTdDMkU5M0Q0Qzk4MjI4Q0Y4MjU4RjRFRUM=&userid=S00008540989×tamp=1597309622715&redirect_uri=http%3A%2F%2Flcsl.test.ecsapp.jinyantrip.net%2Fmall%2Fhotel%2Fbooking%3FBookingType%3D1529%26AdultCount%3D0%26ServiceType%3DHotelService%26pageIndex%3D0%26DepartDate%3D%26DepartDateEnd%3D2020-09-30%26ReturnDate%3D%26ReturnDateEnd%3D2020-09-30%26Consumers%3D%5B%5D%26ApplyArea%3D1126%26ZoneID%3D%26MustConform%3D1151%26RuleID%3DBtripRule5AFBAA0CE6F042DEAFE2E1674532CC99%26FlowID%3DBtripFlow5AFBAA0CE6F042DEAFE2E1674532CC99
签名 结果: daca64d102ae9b975cfaf2c774a013da
参数编码格式:UTF-8
# 全局参数
# 后端接口
请求参数
Headers
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
Content-Type | 是 | application/json | |||
access-token | 是 | 授权成功后返回的 access-token | |||
appkey | string | 是 | 应用的appkey,接口开通时提供 | ||
signature | 是 | 参数签名 |
Body (Method: POST)
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
timestamp | string | 是 | 时间戳 |
Query (Method: GET)
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
timestamp | string | 是 | 时间戳 |
# 前端接口
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
access-token | 是 | 授权成功后返回的 access-token | |||
signature | 是 | 参数签名 | |||
timestamp | string | 是 | 应用的appkey,接口开通时提供 |
# 免登授权
# 获取授权接口(新)
基本信息 Path: /adapter/oauth/token
Method: POST
接口描述: 客户端接口调用时需要使用access_token进行授权,access_token的有效期为5分钟且只能使用一次,access_token的存储需要保留512个字符空间。
access_token的使用及生成方式说明: 3. 使用AppKey和Secret调用本接口来获取access_token。接口开通时请求服务器IP提供给我方 我方会生成 AppKey和Secret给到开发者 4. 目前web access_token用于免登入口 因此仅在需要跳转到我方系统时使用 api access_token 获取 web access_token即可 web access_token 采用 api access_token方式获取
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
appkey | string | 是 | 应用的appkey,接口开通时提供 | ||
token_code | string | 是 | code固定为web用于客户端接口 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
result | object | 是 | |||
├─ access_token | string | 是 | 用于客户端接口访问传入 | ||
├─ expires_in | integer | 是 | access_token 的过期时间,单位是秒 |
# 获取授权接口(旧)
基本信息 Path: /adapter/oauth/token
Method: POST
接口描述:
获取access_token access_token是全局接口调用的凭据并且分为服务端的 API access_token 及 客户端的 WEB access_token,接口调用时都需使用access_token。access_token的存储需要保留512个字符空间。
API access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。 WEB access_token的有效期默认为5分钟且只能使用一次 WEB access_token 支持使用 API access_token获取
access_token的使用及生成方式说明:
- 建议开发者使用中控服务器统一获取 api access_token,其他业务逻辑服务器所使用的api access_token均来自于该中控服务器,刷新access_token 时请使用 refresh_token作为参数 ;
- 目前api access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时会保证在5分钟内,新老api access_token都可用,这保证了第三方业务的稳定对接;
- 使用AppKey和Secret调用本接口来获取access_token。接口开通时请求服务器IP提供给我方 我方会生成 AppKey和Secret给到开发者
- 目前web access_token用于免登入口 因此仅在需要跳转到我方系统时使用 api access_token 获取 web access_token即可 web access_token 采用 api access_token方式获取
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
appkey | string | 是 | 应用的appkey,接口开通时提供 | ||
token_code | string | 是 | code为api时用于服务端接口 code为web时用于客户端接口 | ||
refresh_token | string | 是 | 获取 Access Token 时返回的 refresh_token (刷新授权时必传) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
result | object | 是 | |||
├─ access_token | string | 是 | API访问令牌,调用所有 Open API 必须携带该 access_token | ||
├─ expires_in | integer | 是 | access_token 的过期时间,单位是秒 | ||
├─ refresh_token | string | 是 | 用于刷新最新 access_token,当 access_token 过期后,使用 refresh_token 调用刷新 Token 的接口重新获取 token |
# 刷新授权接口(废弃)
说明:接口上线初期应客户要求兼容第三方接口,新客户接入时对刷新授权机制诟病较多,现阶段已不再维护第三方兼容接口,我司已调整接口验证机制 后续接入请采用新的签名规则
基本信息 Path: /adapter/oauth/refresh
Method: POST
接口描述: 请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
appkey | string | 是 | 应用的appkey,接口开通时提供 | ||
token_code | string | 是 | 固定传值 api | ||
refresh_token | string | 是 | 获取 Access Token 时返回的 refresh_token |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
result | object | 是 | |||
├─ access_token | string | 是 | API访问令牌,调用所有 Open API 必须携带该 access_token | ||
├─ expires_in | integer | 是 | access_token 的过期时间,单位是秒 |
# 网页免登入口
基本信息 Path: /adapter/oauth/entry
Method: GET
接口描述:
请求参数 Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
userid | 是 | ||||
access_token | 是 | 授权成功后返回的 access_token | |||
redirect_uri | 是 | 免登授权成功后要跳转的地址 |
# 业务接口
# 获取基础数据
基本信息 Path: /adapter/zone/list
Method: POST
接口描述:
请求参数 Headers
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
Content-Type | 是 | application/json |
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ZoneType | string | 是 | 城市:1444,省份:1445,机场:1447,车站:1807 | ||
Lang | string | 是 | 中文:cn 英文:en |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 否 | |||
isSucc | string | 否 | |||
message | string | 否 | |||
result | object [] | 否 | |||
├─ ZoneID | string | 否 | |||
├─ ZoneSpell | string | 否 | |||
├─ ZoneCode | string | 否 | |||
├─ ZoneName | string | 否 | |||
├─ OrderBy | string | 否 |
# 获取订单列表
基本信息 Path: /adapter/order/list
Method: POST
接口描述:
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
CreateTime | string | 否 | 创建时间 | ||
CreateTimeEnd | string | 否 | 截至时间 | ||
OrderID | string | 否 | 订单编号 | ||
KeyWords | string | 否 | 关键字 | ||
ServiceTypes | number [] | 否 | |||
├─ | 否 | ||||
BusinessTypes | number [] | 否 | |||
├─ | 否 | ||||
PageSize | integer | 否 | 每页条数 | @integer | |
PageNo | integer | 否 | 第几页 | @integer |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 否 | |||
isSucc | string | 否 | $$ | ||
message | string | 否 | |||
result | object | 否 | |||
├─ PageNo | number | 否 | |||
├─ PageSize | number | 否 | |||
├─ RecordCount | string | 否 | |||
├─ entities | object [] | 否 | |||
├─ ApplyArea | number | 否 | 适用区域 | ||
├─ OrderID | string | 否 | |||
├─ BookingUserName | string | 否 | 预定人名称 | ||
├─ ClientOrderStatusName | string | 否 | 订单状态 | ||
├─ ConsumerAddress | string | 否 | 消费地址 | ||
├─ ConsumerCityName | string | 否 | 出发城市 | ||
├─ ConsumerZoneName | string | 否 | 出发车站/机场 | ||
├─ ConsumerDates | string | 否 | 出发时间 | ||
├─ FeatureCodes | string | 否 | 特性代码 | ||
├─ FinishedCityName | string | 否 | 到大城市 | ||
├─ FinishedZoneName | string | 否 | 到达车站/机场 | ||
├─ FinishedDates | string | 否 | 到达时间 | ||
├─ LevelCode | string | 否 | 级别代码 | ||
├─ LevelName | string | 否 | 级别名称 | ||
├─ ProduceCode | string | 否 | 品牌代码 | ||
├─ ProduceName | string | 否 | 品牌名称 | ||
├─ ProductName | string | 否 | 产品名称 | ||
├─ ProductImage | string | 否 | 产品图片 | ||
├─ ShareAirwayCode | string | 否 | 共享航司编码 | ||
├─ ShareAirwayName | string | 否 | 共享航司名称 | ||
├─ ShareFlightNo | string | 否 | 共享航班号 | ||
├─ TransferCity | string | 否 | 中转城市 | ||
├─ TransferTime | string | 否 | 中转时长 | ||
├─ ServiceType | number | 否 | 服务类型 | ||
├─ CreateTime | string | 否 | 创建时间 |
# 获取订单详情
基本信息 Path: /adapter/order/detail/{id}
Method: GET
接口描述:
单程机票订单详情示例 (opens new window)
单程机票经停订单详情示例 (opens new window)
往返程机票不同航司订单详情示例 (opens new window)
往返程机票同航司订单详情示例 (opens new window)
酒店订单详情示例 (opens new window)
火车票订单详情示例 (opens new window)
价格类型:
{"CategoryID":1672,"CategoryTitle":"房费","CategoryCode":"HotelFare"},
{"CategoryID":1674,"CategoryTitle":"团费","CategoryCode":"TeamFare"},
{"CategoryID":1660,"CategoryTitle":"票面","CategoryCode":"TicketFare"},
{"CategoryID":1662,"CategoryTitle":"机建","CategoryCode":"BuildFare"},
{"CategoryID":1664,"CategoryTitle":"燃油","CategoryCode":"FuelFare"},
{"CategoryID":1666,"CategoryTitle":"税费","CategoryCode":"TaxFare"},
{"CategoryID":1692,"CategoryTitle":"直减","CategoryCode":"DirectReduction"},
{"CategoryID":1668,"CategoryTitle":"保险","CategoryCode":"SafeFare"},
{"CategoryID":1670,"CategoryTitle":"服务费","CategoryCode":"ServiceFare"},
{"CategoryID":1678,"CategoryTitle":"退票","CategoryCode":"AmendFare"},
{"CategoryID":1682,"CategoryTitle":"变更","CategoryCode":"ChangeFare"},
{"CategoryID":1684,"CategoryTitle":"原价","CategoryCode":"OldPrice"},
{"CategoryID":1690,"CategoryTitle":"其它","CategoryCode":"OtherFare"},
{"CategoryID":1694,"CategoryTitle":"折扣","CategoryCode":"ThrowDiscount"},
退费状态:
{ "CategoryID": 10201, "CategoryTitle": "待提交", "CategoryCode": "WaitSubmit" },
{ "CategoryID": 10203, "CategoryTitle": "待核价", "CategoryCode": "WaitDispose" },
{ "CategoryID": 10205, "CategoryTitle": "待确认", "CategoryCode": "WaitConfirm" },
{ "CategoryID": 10209, "CategoryTitle": "待退款", "CategoryCode": "WaitRefund" },
{ "CategoryID": 10213, "CategoryTitle": "已完成", "CategoryCode": "Finished" },
{ "CategoryID": 10215, "CategoryTitle": "暂不能", "CategoryCode": "Cannot" },
{ "CategoryID": 10217, "CategoryTitle": "已退回", "CategoryCode": "Rejected" },
{ "CategoryID": 10221, "CategoryTitle": "已取消", "CategoryCode": "Canceled" },
订单状态:
{ "CategoryID": 10101, "CategoryTitle": "待预定", "CategoryCode": "WaitBooking" },
// { "CategoryID": 10103, "CategoryTitle": "待审批", "CategoryCode": "WaitApprove" },
{ "CategoryID": 10105, "CategoryTitle": "待确认", "CategoryCode": "WaitConfirm" },
{ "CategoryID": 10107, "CategoryTitle": "待支付", "CategoryCode": "WaitPayment" },
{ "CategoryID": 10109, "CategoryTitle": "待处理", "CategoryCode": "WaitDispose" },
{ "CategoryID": 10113, "CategoryTitle": "已完成", "CategoryCode": "Finished" },
{ "CategoryID": 10115, "CategoryTitle": "已取消", "CategoryCode": "Canceled" },
{ "CategoryID": 10117, "CategoryTitle": "已退回", "CategoryCode": "Rejected" },
// { "CategoryID": 10119, "CategoryTitle": "已拆分", "CategoryCode": "Discrete" },
{ "CategoryID": 10121, "CategoryTitle": "暂不能", "CategoryCode": "Cannot" },
请求参数
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | 订单号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 否 | |||
message | string | 否 | |||
isSucc | boolean | 否 | |||
result | object [] | 否 | |||
├─ WorkID | string | 否 | 保留字段 | ||
├─ TaskID | string | 是 | 保留字段 | ||
├─ ActiveTime | string | 否 | 当前审批时间 | ||
├─ ActiveUserID | string | 否 | 当前审批人编号 | ||
├─ ActiveUserName | string | 否 | 当前审批人名称 | ||
├─ ServiceType | number | 否 | 服务类型(1409机票;1407酒店;1470火车;1408旅游) | ||
├─ Actives | object [] | 否 | |||
├─ ActiveID | string | 否 | 审批编号 | ||
├─ FlowID | string | 否 | 流程编号 | ||
├─ NodeID | string | 否 | 保留字段 | ||
├─ NodeName | string | 否 | 保留字段 | ||
├─ ActiveName | string | 否 | 审批人名称 | ||
├─ ActiveUserID | string | 否 | 审批人编号 | ||
├─ ActiveUserName | string | 否 | 审批人名称 | ||
├─ ActiveStatus | number | 否 | 审批状态 | ||
├─ BusinessInfo | object | 否 | |||
├─ Consumers | object [] | 否 | 旅客信息 | ConsumerID | |
├─ ConsumerID | string | 否 | 旅客编号 | ||
├─ OriginID | string | 否 | 改签单原旅客编号 | ||
├─ ConsumerNo | string | 否 | 保留字段 | ||
├─ OrderID | string | 否 | 订单编号 | ||
├─ UserID | string | 否 | 用户编号 | ||
├─ ConsumerName | string | 否 | 旅客名称 | ||
├─ EnglishFirstName | string | 否 | 旅客英文姓 | ||
├─ EnglishLastName | string | 否 | 旅客英文名 | ||
├─ ConsumerType | number | 否 | 旅客类型(1705成人,1703儿童,1701婴儿) | ||
├─ ConsumerSex | number | 否 | 旅客性别(1145男;1146女) | ||
├─ CountryID | number | 否 | 国家编号 | ||
├─ CountryCode | string | 否 | 国家编码 | ||
├─ Birthday | string | 否 | 出生日期 | ||
├─ CardType | number | 否 | 证件类型(1138身份证;1139护照;1140学生证;1141军官证;1298港澳通行证;1299台湾通行证;1442其它) | ||
├─ CardNo | string | 否 | 证件号码 | ||
├─ CardOverDate | string | 否 | 证件有效期 | ||
├─ ContactMobile | string | 否 | 旅客联系电话 | ||
├─ ContactEmail | string | 否 | 旅客联系邮箱 | ||
├─ ConsumerPreference | string | 否 | 旅客偏好 | ||
├─ NotifyType | string | 否 | 消息通知渠道(1865短信通知;1867邮件通知;1869微信通知;1871App通知;OA通知) | ||
├─ Policys | object [] | 否 | |||
├─ PnrSmall | string | 否 | 机票定座记录(小编码) | ||
├─ PnrBig | string | 否 | 机票定座记录(大编码) | ||
├─ IsTwoConfirm | number | 否 | 是否需要审核/确认库存 | ||
├─ Products | object [] | 否 | |||
├─ Features | string [] | 否 | |||
├─ | 否 | ||||
├─ Products | string [] | 否 | |||
├─ | 否 | ||||
├─ TransferCity | string | 否 | 机票中转城市 | ||
├─ TransferTime | string | 否 | 机票中转时长 | ||
├─ AirplaneModel | string | 否 | 机票机型 | ||
├─ ShareAirwayCode | string | 否 | 机票共享航司编码 | ||
├─ ShareAirwayName | string | 否 | 机票共享航司名称 | ||
├─ ShareFlightNo | string | 否 | 机票共享航班号 | ||
├─ AmendRuleID | string | 否 | 退改签规则编号 | ||
├─ SelfPayment | number | 否 | 自付金额 | ||
├─ productProps | null | 否 | |||
├─ ProductID | string | 否 | 产品编号 | ||
├─ ProductName | string | 否 | 产品名称 | ||
├─ ProductType | number | 否 | 产品类型 | ||
├─ ProduceID | string | 否 | 行程编号 | ||
├─ ProduceCode | string | 否 | 行程编码(行程编码+批次码=航班号 | ||
├─ ProduceName | string | 否 | 行程信息 | ||
├─ LevelCode | string | 否 | 级别代码(机票 舱位;火车 座位;酒店 房间;) | ||
├─ LevelName | string | 否 | 级别名称 (机票 舱位;火车 座位;酒店 房间;) | ||
├─ BatchID | string | 否 | 批次编号 | ||
├─ BatchCode | string | 否 | 批次码(行程编码+批次码=航班号) | ||
├─ ConsumerCityID | string | 否 | 出发城市编号 | ||
├─ ConsumerCityCode | string | 否 | 出发城市编码 | ||
├─ ConsumerCityName | string | 否 | 出发城市名称 | ||
├─ ConsumerZoneID | string | 否 | 消费区域编号 | ||
├─ ConsumerZoneCode | string | 否 | 消费区域编号 | ||
├─ ConsumerZoneName | string | 否 | 消费区域名称 | ||
├─ ConsumerDate | string | 否 | 出发时间 | ||
├─ ConsumerAddress | string | 否 | 消费详细地址 | ||
├─ FinishedCityID | string | 否 | 到达城市编号 | ||
├─ FinishedCityCode | string | 否 | 到达城市编码 | ||
├─ FinishedCityName | string | 否 | 到达城市名称 | ||
├─ FinishedZoneID | string | 否 | 机场/车站编号 | ||
├─ FinishedZoneCode | string | 否 | 机场/车站编号 | ||
├─ FinishedZoneName | string | 否 | 机场/车站名称 | ||
├─ FinishedDate | string | 否 | 到达时间 | ||
├─ FinishedAddress | string | 否 | 机场/车站详细地址 | ||
├─ ConsumerDuration | number | 否 | 消费时长 | ||
├─ Breakfast | null | 否 | 是否含早(1150是;否1151) | ||
├─ ProducePhone | null | 否 | 酒店/航司电话 | ||
├─ Goods | object [] | 否 | |||
├─ Prices | object [] | 否 | |||
├─ FeatureCode | string | 否 | |||
├─ PriceID | string | 否 | 价格编号 | ||
├─ ProductID | string | 否 | 产品编号 | ||
├─ UniqueID | string | 否 | 订单唯一编号 | ||
├─ PriceType | number | 否 | 价格类型 | ||
├─ PriceName | string | 否 | 价格名称 | ||
├─ MarketPrice | number | 否 | 市场价 | ||
├─ SalesPrice | number | 否 | 销售价 | ||
├─ StandardPrice | number | 否 | 基准价(市场价/基准价=舱位折扣) | ||
├─ GoodsID | string | 否 | 商品编号 | ||
├─ UniqueID | string | 否 | 订单唯一编号 | ||
├─ GoodsType | number | 否 | 商品类型 | ||
├─ GoodsName | string | 否 | 商品名称 | ||
├─ GoodsPrice | number | 否 | 商品价格 | ||
├─ GoodsCount | number | 否 | 商品数量 | ||
├─ SalesPrice | number | 否 | 销售价 | ||
├─ GoodsData | string | 否 | |||
├─ Remark | string | 否 | 备注 | ||
├─ PolicyID | string | 否 | 政策编号 | ||
├─ UniqueID | string | 否 | 订单唯一编号 | ||
├─ ApplyArea | number | 否 | 区域类型(1126国内;1127国际) | ||
├─ ServiceID | number | 否 | 服务编号 | ||
├─ Vouchers | object [] | 否 | 凭证信息 | ||
├─ VoucherID | string | 否 | 凭证编号 | ||
├─ PolicyID | string | 否 | 政策编号 | ||
├─ ProductID | string | 否 | 产品编号 | ||
├─ GoodsID | string | 否 | 商品编号 | ||
├─ ConsumerID | string | 否 | 旅客编号 | ||
├─ DealState | number | 否 | 处理状态 | ||
├─ VoucherNo | string | 否 | 凭证号 | ||
├─ VoucherType | number | 否 | 凭证类型 | ||
├─ VoucherName | string | 否 | 凭证名称 | ||
├─ VoucherData | string | 否 | |||
├─ CreateTime | string | 否 | 创建时间 | ||
├─ BookingUserID | string | 否 | 预定人编号 | ||
├─ BookingUserName | string | 否 | 预定人名称 | ||
├─ UnionID | string | 否 | 关联编号 | ||
├─ UniqueID | string | 否 | 订单唯一编号 | ||
├─ OrderID | string | 否 | 订单编号 | ||
├─ ApplyArea | number | 否 | 区域类型(1126国内;1127国际) | ||
├─ BusinessID | string | 否 | 业务编号(主订单编号) | ||
├─ OrderType | number | 否 | 订单类型 | ||
├─ ServiceType | number | 否 | 服务类型 | ||
├─ ContactID | string | 否 | 联系人编号 | ||
├─ ContactName | string | 否 | 联系人名称 | ||
├─ ContactPhone | string | 否 | 联系人电话 | ||
├─ ContactEmail | string | 否 | 联系人邮箱 | ||
├─ ClientOrderStatus | number | 否 | 订单状态(名称显示为准) | ||
├─ ClientStatusName | string | 否 | 状态名称 | ||
├─ FeatureCodes | string | 否 | 特性代码 | ||
├─ Remark | string | 否 | 备注 | ||
├─ CreateTime | string | 否 | 创建时间 | ||
├─ CreateUserID | string | 否 | 创建人编号 | ||
├─ CreateUserName | string | 否 | 创建人名称 | ||
├─ ReasonType | string | 否 | 退改类型 | ||
├─ Reason | string | 否 | 退改原因 | ||
├─ ReasonDetail | string | 否 | 退改详细原因 | ||
├─ ReceiveTradeAmount | number | 否 | 总金额 | ||
├─ RetentionTime | string | 否 | 订单最晚保留时间 | ||
ClientUniqueID | 客户单号或OA审批单号 | ||||
BtripInfo | |||||
├─ IntentName | 差旅目的 | ||||
├─ CenterName | 成本中心 | ||||
├─ ProjectCode | 项目代码 | ||||
├─ ProjectName | 项目名称 | ||||
├─ RejectReason | 拒绝原因 | ||||
├─ SelfPayment | 自付金额 | ||||
├─ Contrarys | |||||
├─ ProductName | 产品名称 | ||||
├─ ProductID | 产品编号 | ||||
├─ ContraryInfo | 违背信息 | ||||
├─ CauseName | 违背原因名称 | ||||
├─ CauseDetails | 详细违背原因 |
火车座位级别
levelCode | levelName |
---|---|
swz | 商务座 |
tdz | 特等座 |
ydz | 一等座 |
edz | 二等座 |
gjrw | 高级软卧 |
rw | 软卧 |
yw | 硬卧 |
rz | 软座 |
yz | 硬座 |
wz | 无座 |
dw | 动卧 |
ydw | 一等卧 |
edw | 二等卧 |
bxyw | 包厢硬卧 |
yrrb | 一人软包 |
# 订单审批通过接口
基本信息 Path: /adapter/order/resolve
Method: GET
接口描述:
接口通过情况下 适用于 OA 内部审批流程走完之后 调用我们接口将订单状态从 待审批 变更为 待处理(出票处理)
如果订单没有审批人会 默认为 免审批 自动将订单状态变更为 待处理 进行出票
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
OrderID | 是 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | string | 是 |
# 订单审批拒绝接口
基本信息 Path: /adapter/order/reject
Method: GET
接口描述:
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
OrderID | 是 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | string | 是 |
# 消息通知接口
基本信息 Path: /
Method: POST
接口描述:
合作方在接收到结果后 返回收到通知的标示(success)
下单成功(提交成功)通知:
{"NotifyCode":"booking","NotifyContent":"酒店订单已经下单成功,订单审批通过后我们将尽快为你出票。","NotifyTime":"2019-04-01","BusinessID":"","ClientOrderID":""}
订单待审批通知:
{"NotifyCode":"approval","NotifyContent":"酒店订单已经预定成功,请您尽快审核,超期订单将会自动取消。","NotifyTime":"2019-04-01","BusinessID":"","ClientOrderID":""}
订单处理完成(订单扣款之后)通知:
{"NotifyCode":"finished","NotifyContent":"您预定的酒店订单已处理完成","NotifyTime":"2019-04-01","BusinessID":"","ClientOrderID":""}
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
NotifyCode | string | 是 | 通知类型(approval:审批,booking:预定,finished:已完成) | ||
NotifyContent | string | 是 | 通知内容 | ||
NotifyTime | string | 是 | 通知时间 | ||
BusinessID | string | 是 | 业务编号(不同业务场景下的唯一编号)例如订单号 | ||
AtomicID | string | 是 | 原子操作编号 | ||
ClientOrderID | string | 是 |
返回数据 无
# 退票申请
基本信息 Path: /adapter/order/refund
Method: POST
退票申请提交后需等待客服核价,退票费用需以最终退款金额为准,如有疑问请拨打客服电话
机票
单人单程退票详情示例 (opens new window)
单人往返程单程退票详情示例 (opens new window)
单人往返程全部退票详情示例 (opens new window)
多人单程一人退票详情示例 (opens new window)
多人单程全部退票详情示例 (opens new window)
多人往返程全部退票详情示例 (opens new window)
酒店
酒店退房详情示例 (opens new window)
"FlightRefundReason": [
{"CategoryID":1517,"CategoryTitle":"我要改变行程,不想飞了","CategoryCode":"FlightChange"},
{"CategoryID":1518,"CategoryTitle":"记错行程、日期、时间、姓名","CategoryCode":"FlightMistaken"},
{"CategoryID":1519,"CategoryTitle":"航班延误或取消","CategoryCode":"FlightDelay"}
],
"HotelRefundReason":[
{"CategoryID":1805,"CategoryTitle":"行程变更","CategoryCode":"HotelChange"},
{"CategoryID":1837,"CategoryTitle":"行程取消","CategoryCode":"HotelDelay"},
],
"BusinessType": [
{"CategoryID":1797,"CategoryTitle":"销售","CategoryCode":"Sales"},
{"CategoryID":1789,"CategoryTitle":"变更","CategoryCode":"Change"},
{"CategoryID":1799,"CategoryTitle":"退废","CategoryCode":"Amend"},
{"CategoryID":1791,"CategoryTitle":"账务","CategoryCode":"Bill"},
{"CategoryID":1793,"CategoryTitle":"公司","CategoryCode":"Company"},
{"CategoryID":1795,"CategoryTitle":"产品","CategoryCode":"Product"},
{"CategoryID":1801,"CategoryTitle":"个人","CategoryCode":"People"}
],
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
UniqueID | string | 是 | 唯一编号 | ||
ServiceType | number | 是 | 业务类型 | ||
Products | string [] | 是 | |||
├─ | 否 | 产品编号 | |||
Consumers | string [] | 是 | |||
├─ | 否 | 旅客编号 | |||
ReasonType | string | 是 | 类型 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | |||
message | string | 是 | |||
result | string | 是 | 成功返回退费单唯一编号 |
# 改签申请
基本信息 Path: /adapter/common/change
Method: GET
机票
单人单程改签详情示例 (opens new window)
单人单程二次改签详情示例 (opens new window)
单人往返程单程改签详情示例 (opens new window)
单人往返程单程二次改签详情示例 (opens new window)
单人往返程单程第二航程改签详情示例 (opens new window)
单人往返程单程第二航程二次改签详情示例 (opens new window)
单人往返程全部改签详情示例 (opens new window)
单人往返程全部二次改签详情示例 (opens new window)
多人单程一人改签详情示例 (opens new window)
多人单程一人二次改签详情示例 (opens new window)
多人往返程全部改签详情示例 (opens new window)
多人往返程全部二次改签详情示例 (opens new window)
接口描述:
"FlightRefundReason": [
{"CategoryID":1517,"CategoryTitle":"我要改变行程,不想飞了","CategoryCode":"FlightChange"},
{"CategoryID":1518,"CategoryTitle":"记错行程、日期、时间、姓名","CategoryCode":"FlightMistaken"},
{"CategoryID":1519,"CategoryTitle":"航班延误或取消","CategoryCode":"FlightDelay"}
],"HotelRefundReason":[
{"CategoryID":1805,"CategoryTitle":"行程变更","CategoryCode":"HotelChange"},
{"CategoryID":1837,"CategoryTitle":"行程取消","CategoryCode":"HotelDelay"},
],
"BusinessType": [
{"CategoryID":1797,"CategoryTitle":"销售","CategoryCode":"Sales"},
{"CategoryID":1789,"CategoryTitle":"变更","CategoryCode":"Change"},
{"CategoryID":1799,"CategoryTitle":"退废","CategoryCode":"Amend"},
{"CategoryID":1791,"CategoryTitle":"账务","CategoryCode":"Bill"},
{"CategoryID":1793,"CategoryTitle":"公司","CategoryCode":"Company"},
{"CategoryID":1795,"CategoryTitle":"产品","CategoryCode":"Product"},
{"CategoryID":1801,"CategoryTitle":"个人","CategoryCode":"People"}
],
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
Content-Type | 是 | application/json | |||
access-token | 是 | 授权成功后返回的 access-token | |||
signature | 是 | 参数签名 |
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
UniqeID | 是 | 唯一编号 | '' | ||
return_url | 是 | 返回地址 | '' | ||
OrderID | 是 | 订单编号 | |||
ChannelCode | 是 | 渠道代码 | |||
Products | 是 | ProductID,ProductID | 产品编号(保留字段) | ||
Consumers | 是 | ConsumerID,ConsumerID | 出行人编号(保留字段) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
message | string | 是 | |||
isSucc | string | 是 | |||
result | string | 是 |
# 商旅接口
# 审批管控预约
基本信息 Path: /adapter/btrip/booking
Method: POST
接口描述:
接口返回的booking_url 可以直接传递给网页免登入口 免登授权成功后将进入产品列表(航班列表 车次列表 酒店列表)页面 审批人数组不传审批人将执行免审批流程允许重复创建 系统会定时清理无效的预约单
{"CategoryID":1,"CategoryTitle":"一星"},
{"CategoryID":2,"CategoryTitle":"二星"},
{"CategoryID":3,"CategoryTitle":"三星"},
{"CategoryID":4,"CategoryTitle":"四星"},
{"CategoryID":5,"CategoryTitle":"五星"},
{"CategoryID":1496,"CategoryTitle":"经济舱","CategoryCode":"Economy"},
{"CategoryID":1498,"CategoryTitle":"商务舱","CategoryCode":"Buissenes"},
{"CategoryID":1500,"CategoryTitle":"头等舱","CategoryCode":"First"},
{"CategoryID":1859,"CategoryTitle":"经济舱(9折)","CategoryCode":"Economy9"},
{"CategoryID":1857,"CategoryTitle":"经济舱(8折)","CategoryCode":"Economy8"},
{"CategoryID":1855,"CategoryTitle":"经济舱(7折)","CategoryCode":"Economy7"},
{"CategoryID":1853,"CategoryTitle":"经济舱(6折)","CategoryCode":"Economy6"},
{"CategoryID":1851,"CategoryTitle":"经济舱(5折)","CategoryCode":"Economy5"}
{"CategoryID":1485,"CategoryTitle":"商务座","CategoryCode":"BusinessSeat"},
{"CategoryID":1486,"CategoryTitle":"特等座","CategoryCode":"SpecialSeat"},
{"CategoryID":1487,"CategoryTitle":"一等座","CategoryCode":"Level1Seat"},
{"CategoryID":1488,"CategoryTitle":"二等座","CategoryCode":"Level2Seat"},
{"CategoryID":1489,"CategoryTitle":"高级软卧","CategoryCode":"HighGradeSleeper"},
{"CategoryID":1490,"CategoryTitle":"软卧","CategoryCode":"CommonSleeper"},
{"CategoryID":1491,"CategoryTitle":"硬卧","CategoryCode":"HardSleeper"},
{"CategoryID":1492,"CategoryTitle":"软座","CategoryCode":"SoftSeat"},
{"CategoryID":1493,"CategoryTitle":"硬座","CategoryCode":"HardSeat"},
{"CategoryID":1494,"CategoryTitle":"无座","CategoryCode":"NotHaveSeat"},
{"CategoryID":1495,"CategoryTitle":"动卧","CategoryCode":"MotionSupine"},
{"CategoryID":1497,"CategoryTitle":"一等卧","CategoryCode":"Level1Sleeper"},
{"CategoryID":1499,"CategoryTitle":"二等卧","CategoryCode":"Level2Sleeper"},
最低价格基准
{ "CategoryID": 0, "CategoryTitle": "无限制", "CategoryCode": "NoLimit" },
{ "CategoryID": 1501, "CategoryTitle": "相对最低价", "CategoryCode": "ControLowestPrice" },
{ "CategoryID": 1502, "CategoryTitle": "全天最低价", "CategoryCode": "DayLowestPrice" },
{ "CategoryID": 1503, "CategoryTitle": "时段最低价", "CategoryCode": "TimeAreaLowestPrice" },
{ "CategoryID": 1504, "CategoryTitle": "航班最低价", "CategoryCode": "FlightLowestPrice" }
相对最低价及时段最低价 情况下需指定基准时间参数 相对最低价情况下 默认时间为2 表示选中航班时间的前后2小时内 最低价航班符合政策 时段最低价情况下 默认时间为4 表示将一天24小时按照每4小时一个区间 每个区间内最低的价格符合政策
不指定员工,仅自己预定, 其他规则不限制 :
{AdvanceTime: 0,ApplyArea: 1126,Approval: "",OneSelf:1150,ApprovalID: "",Approvals: [],ArriveCity: "",Benchmark: 0,ChannelCode: "WEB",Consumer: "",Consumers: ['S00008256034','S00008256037'],CostCenter: "",DepartCity: "",LimitPrice: "",MustConform: 1151,ProjectCode: "",RuleName: "技术出差规则及流程",SelfPayment: 1151,ServiceLevel: "",ServiceType: 1407,notify_url: "",return_url: "",timestamp: "1554167239595"}
限制指定员工 其他规则不限制 :
{AdvanceTime: 0,ApplyArea: 1126,Approval: "",ApprovalID: "",Approvals: [],ArriveCity: "",Benchmark: 0,ChannelCode: "WEB",Consumer: "",Consumers: ['S00008256034','S00008256037'],CostCenter: "",DepartCity: "",LimitPrice: "",MustConform: 1151,ProjectCode: "",RuleName: "技术出差规则及流程",SelfPayment: 1151,ServiceLevel: "",ServiceType: 1407,notify_url: "",return_url: "",timestamp: "1554167239595"}
不指定员工 其他规则不限制 (管理员):
{AdvanceTime: 0,ApplyArea: 1126,Approval: "",ApprovalID: "",Approvals: [],ArriveCity: "",Benchmark: 0,ChannelCode: "WEB",Consumer: "",Consumers: [],CostCenter: "",DepartCity: "",LimitPrice: "",MustConform: 1151,ProjectCode: "",RuleName: "技术出差规则及流程",SelfPayment: 1151,ServiceLevel: "",ServiceType: 1407,notify_url: "",return_url: "",timestamp: "1554167239595"}
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
RuleName | string | 是 | 差旅规则名称 | 测试规则 | |
ChannelCode | string | 是 | WEB | 渠道代码(WEB Weixin APP H5) | WEB |
CostCenter | string | 是 | 测试成本 | 成本中心 | 测试成本 |
ProjectCode | string | 是 | TEST | 项目代码 | TEST |
SelfPayment | number | 是 | 0 | 自付金额 | |
AdvanceTime | number | 是 | 0 | 提前预定时间(小时) | 0 |
ApplyArea | number | 是 | 1126 | 适用区域(1126 国内;1127 国际) | 1126 |
Benchmark | number | 是 | 0 | 最低价格基准(全天最低价,时段最低价,航班最低价,相对最低价) | 0 |
TimeSpace | number | 是 | 基准时间(时段最低价,相对最低价时填写相对时间) | ||
ServiceType | number | 是 | 1409 | 服务类型 (1407:酒店,1409:机票,1470:火车) | 1409 |
ServiceLevel | string | 是 | 1496,1498,1500 | 级别限制(酒店星级,机票舱位,火车坐席) | |
LimitPrice | number | 是 | 1000 | 金额上限(酒店:单间一夜的金额) | 1000 |
Approvals | string [] | 是 | |||
├─ | 否 | S0000000001 | 审批人(按索引顺序审批 不传将执行免审批流程) | ||
Consumers | string [] | 是 | |||
├─ | 否 | S0000000002 | 旅客编号(可以为哪些旅客预定 为空则为不限制 进入我方系统后可以选择或添加临客) | ||
MustConform | boolean | 是 | false | 必须符合政策(1150:违背政策不能下单) | 1151 |
DepartDate | string | 是 | 2019-04-23 | 出发日期(默认按该日期查询产品 产品列表页面可以调整出发日期 但是必须在开始截止日期之间) | 2019-04-23 |
DepartDateEnd | string | 是 | 2019-04-24 | 出发截至日期 | 2019-04-24 |
ReturnDate | string | 是 | 2019-04-25 | 返程日期(返程默认按该日期查询产品 产品列表页面可以调整出发日期 但是必须在开始截止日期之间) | 2019-04-25 |
ReturnDateEnd | string | 是 | 2019-04-26 | 返程截止日期 | 2019-04-26 |
DepartCity | string | 是 | 11181 | 出发城市编号 可通过基础数据接口匹配 | 11181 |
ArriveCity | string | 是 | 10898 | 到达城市编号 可通过基础数据接口匹配 | 10898 |
return_url | string | 是 | 下单成功跳转地址(允许携带业务参数,可申请追加订单号参数) http://lcsl.test.ecsweb.jinyantrip.net | ||
ApprovalID | string | 否 | OA系统的审批单号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | |||
message | string | 是 | |||
result | object [] | 是 | |||
├─ bookingID | string | 是 | 下单预定编号(临时编号) | ||
├─ flowID | string | 是 | 审批流程编号 | ||
├─ RuleID | string | 是 | 差旅规则编号 | ||
├─ booking_url | string | 是 | 下单预定地址(航班 车次 酒店等列表页面) | ||
├─ expires_in | string | 是 | 预约单的过期时间,单位是秒 |
# 项目接口(托管接口)
说明:将项目信息提前同步到我方系统 托管到我方系统 旅客预定时我方系统直接展示 用户在我方系统修改项目信息 会同步会OA系统
# 获取项目列表
基本信息 Path: /adapter/project/list
Method: GET
接口描述:
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | true:执行成功,false:失败 | ||
message | string | 是 | |||
result | object | 是 | |||
├─ PageNo | string | 是 | |||
├─ RecordCount | string | 是 | |||
├─ PageSize | string | 是 | |||
├─ entities | object [] | 是 | |||
├─ ProjectID | string | 否 | 项目编号 | ||
├─ ProjectCode | string | 是 | 项目代码 | ||
├─ ProjectName | string | 否 | 项目名称 | ||
├─ ProjectBudget | string | 否 | 项目预算 | ||
├─ ParentID | string | 否 | 上级项目 | ||
├─ BudgetID | string | 否 | 预算承担项目(默认预算承担项目为本项目 若是总项目承担预算则指向总项目) | ||
├─ BudgetMete | string | 否 | 预算分配方式(定量 ration 按月 month) | ||
├─ GrantDate | number | 否 | 预算放款日期 0~31(当月不足指定日情况下 按当月最后一天计算 31固定为每月最后一天放款) |
# 获取项目详情
基本信息 Path: /adapter/project/detail/{id}
Method: GET
接口描述:
请求参数
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | string | 是 | 项目编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 否 | |||
isSucc | string | 否 | true:执行成功,false:失败 | ||
message | string | 否 | |||
result | object | 是 | |||
├─ ProjectID | string | 是 | 项目编号 | ||
├─ ProjectCode | string | 是 | 项目代码 | ||
├─ ProjectName | string | 是 | 项目名称 | ||
├─ ProjectBudget | number | 是 | 项目预算 | ||
├─ ParentID | string | 是 | 上级项目 | ||
├─ BudgetID | string | 是 | 预算承担项目(默认预算承担项目为本项目 若是总项目承担预算则指向总项目) | ||
├─ BudgetMete | string | 是 | 预算分配方式(定量 ration 按月 month) | ||
├─ GrantDate | number | 是 | 预算放款日期 0~31(当月不足指定日情况下 按当月最后一天计算 31固定为每月最后一天放款) |
# 保存项目信息
基本信息 Path: /adapter/project/save
Method: POST
接口描述:
新增是 ProjectID 置空值,修改必须传入ProjectID 否则执行添加操作
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ProjectID | string | 否 | 项目编号(修改必填) | ||
ProjectCode | string | 是 | 项目代码 | ||
ProjectName | string | 是 | 项目名称 | ||
ProjectBudget | string | 是 | 项目预算 | ||
ParentID | string | 是 | 上级项目 | ||
BudgetID | string | 是 | 预算承担项目(默认预算承担项目为本项目 若是总项目承担预算则指向总项目) | ||
BudgetMete | string | 是 | 预算分配方式(定量 ration 按月 month) | ||
GrantDate | number | 是 | 预算放款日期 0~31(当月不足指定日情况下 按当月最后一天计算 31固定为每月最后一天放款) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 否 | |||
isSucc | boolean | 否 | |||
message | string | 否 | |||
result | string | 否 | 项目编号 |
# 项目接口(即时接口)
说明:旅客进入下单页面 实时调用OA系统提供的接口获取项目信息
# 项目预算匹配
基本信息 Path: /adapter/project/match
Method: POST
接口描述:
用户进入下单页面 将调用接口获取可供选择项目信息 根据接口返回的数据我方将呈现为级联选择(数据需是可转化为树形结构的数据)
两种方案
- 接口一次性返回所有层级可供选择的项目信息,并将最后一级选项标记为最终项目
- 接口逐级返回选中的项目子级,选中项目不是最终项目情况下,将逐级调用接口获取子级
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
products | object[] | 是 | 产品信息(如若需要需进一步沟通具体参数) | ||
consumers | string[] | 是 | 用户编号数组 | ||
selected | string | 是 | 选中的项目编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | true:执行成功,false:失败 | ||
message | string | 是 | 执行成功可以使用空值填充,失败时应返回错误消息 | ||
entities | object[] | 是 | |||
├ ProjectID | string | 是 | 项目编号 | ||
├ ProjectCode | string | 是 | 项目代码(为空情况下建议使用ProjectID填充) | ||
├ ProjectName | string | 是 | 项目名称(选择时显示) | ||
├ ProjectBudget | number | 是 | 项目预算 | ||
├ ParentID | string | 是 | 上级项目(根级别项目使用空值填充) | ||
├ IsUltima | boolean | 是 | 是否最终项目(选择项目不是最终项目情况下将继续调用接口匹配下级选项) |
# 获取项目详情
基本信息 Path: /adapter/project/detail/{id}
Method: GET
接口描述:
请求参数
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | string | 是 | 项目编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 否 | |||
isSucc | string | 否 | true:执行成功,false:失败 | ||
message | string | 否 | 执行成功可以使用空值填充,失败时应返回错误消息 | ||
result | object | 是 | |||
├─ ProjectID | string | 是 | 项目编号 | ||
├─ ProjectCode | string | 是 | 项目代码 | ||
├─ ProjectName | string | 是 | 项目名称 | ||
├─ ProjectBudget | number | 是 | 项目预算 | ||
├─ ParentID | string | 是 | 上级项目 |
# 预算扣款接口
基本信息 Path: /adapter/budget/deduct
Method: POST
接口描述:
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ProjectID | string | 是 | 项目编号 | ||
Amount | number | 是 | 项目预算 | ||
OrderID | number | 是 | 订单号 | ||
Cause | string | 是 | 扣款说明(订单摘要) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | string | 是 | 项目编号 |
# 预算退款接口
基本信息 Path: /adapter/budget/refund
Method: POST
接口描述:
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ProjectID | string | 是 | 项目编号 | ||
Amount | number | 是 | 项目预算 | ||
OrderID | number | 是 | 订单号 | ||
Cause | number | 是 | 退款说明(订单摘要) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | string | 是 | 项目编号 |
# 组织架构
# 获取员工列表
基本信息 Path: /adapter/user/list
Method: GET
接口描述:
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
userName | 否 | 用户名 | zhangsan | ||
pageN | 否 | 数据页数 | 1 | ||
createTime | 否 | 创建时间 | 2019-01-01 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | object | 是 | |||
├─ entities | object [] | 是 | |||
├─ id | string | 是 | 用户唯一ID | @string | |
├─ userName | string | 是 | 用户名 | @string | |
├─ groupName | string | 是 | 用户部门 | @string | |
├─ createTime | string | 是 | 用户创建时间 | @time | |
├─ userStatus | string | 是 | 用户状态(1150:启用,1151:禁用) | @integer | |
├─ PageNo | number | 是 | |||
├─ RecordCount | string | 是 | |||
├─ PageSize | string | 是 |
# 获取员工详情
基本信息 Path: /adapter/user/details/{id}
Method: GET
接口描述:
{ "CategoryID": 1143, "CategoryTitle": "启用", "CategoryCode": "Enable" },
{ "CategoryID": 1144, "CategoryTitle": "禁用", "CategoryCode": "UnEnable" }
请求参数
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | 用户编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
result | object | 是 | |||
├─ userID | string | 是 | 用户编号 | ||
├─ userName | string | 是 | 用户名称 | ||
├─ displayName | string | 否 | 用户昵称 | ||
├─ photo | string | 否 | 用户头像 | ||
├─ groupid | string | 否 | 部门编号 | ||
├─ groupName | string | 否 | 用户部门 | ||
├─ countryID | number | 否 | 国家编号 | 151 | |
├─ birthday | string | 否 | 出生日期 | ||
├─ createTime | string | 是 | 创建时间 | ||
├─ userStatus | string | 是 | 用户状态(1150:启用,1151:禁用) | ||
├─ contacts | object [] | 是 | 联系信息 | ||
├─ contactID | string | 是 | 联系编号 | ||
├─ contactName | string | 是 | 联系人名称 | ||
├─ fullAddress | string | 是 | 详细地址 | ||
├─ postCode | string | 否 | 邮编 | ||
├─ provinceID | number | 否 | 省份编号 | ||
├─ cityID | number | 否 | 城市编号 | ||
├─ districtID | number | 否 | 区(街道编号) | ||
├─ roleID | string | 是 | 角色编号 | ||
string | 是 | 用户邮箱 | |||
├─ phone | string | 是 | 用户电话 | ||
├─ cards | object [] | 是 | 证件信息 | ||
├─ cardID | string | 是 | 证件编号 | ||
├─ cardType | number | 是 | 证件类型 | ||
├─ cardNo | string | 是 | 证件号码 | ||
├─ countryID | number | 否 | 发证国家 | ||
├─ expireDate | string | 否 | 证件过期时间 | ||
├─ lmages | string [] | 否 | 证件照地址 | ||
├─ | 否 | 图片地址 | |||
├─ roleID | string | 是 | 角色编号 |
# 保存员工信息
基本信息 Path: /adapter/user/save
Method: POST
接口描述:
{"CategoryID":1138,"CategoryTitle":"身份证","CategoryCode":"IDCard"},
{"CategoryID":1139,"CategoryTitle":"护照","CategoryCode":"PassportCard"},
{"CategoryID":1140,"CategoryTitle":"学生证","CategoryCode":"StudentCard"},
{"CategoryID":1141,"CategoryTitle":"军官证","CategoryCode":"OfficerCard"},
{"CategoryID":1298,"CategoryTitle":"港澳通行证","CategoryCode":"HKMpermit"},
{"CategoryID":1299,"CategoryTitle":"台湾通行证","CategoryCode":"TaiWpermit"},
{"CategoryID":1142,"CategoryTitle":"其它","CategoryCode":"OtherCard"},
{ "CategoryID": 1145, "CategoryTitle": "男", "CategoryCode": "Male" },
{ "CategoryID": 1146, "CategoryTitle": "女", "CategoryCode": "Female" }
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
userid | string | 是 | 用户编号(修改必填) | ||
userName | string | 是 | 用户名称 | ||
string | 是 | 用户邮箱 | |||
phone | string | 是 | 用户电话 | ||
sex | number | 是 | 性别 | ||
remark | string | 是 | 备注信息 | ||
photo | string | 是 | 用户头像 | ||
countryID | number | 是 | 国家编号 | 151 | |
birthday | string | 是 | 出生日期 | ||
contacts | object [] | 否 | |||
├─ contactID | string | 是 | 修改时必填 | ||
├─ contactName | string | 是 | 联系人名称 | ||
├─ postCode | string | 是 | 邮编 | ||
├─ fullAddress | string | 是 | 详细地址 | ||
├─ provinceID | string | 是 | 省份编号 | ||
├─ cityID | string | 是 | 城市编号 | ||
├─ districtID | string | 是 | 区(街道编号) | ||
cards | object [] | 否 | |||
├─ cardID | string | 是 | 修改时必填 | ||
├─ cardType | string | 是 | 证件类型 | ||
├─ cardNo | string | 是 | 证件号码 | ||
├─ expireDate | string | 是 | 证件有效期 | ||
├─ cardImages | string [] | 是 | 证件图片 | ||
├─ | 否 | 证件图片 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 否 | |||
isSucc | boolean | 否 | |||
message | string | 否 | |||
result | object | 否 |
# 获取部门列表
基本信息 Path: /adapter/group/list
Method: GET
接口描述:
请求参数
Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
groupName | 是 | ||||
pageNo | 是 | ||||
createTime | 是 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | true:执行成功,false:失败 | ||
message | string | 是 | |||
result | object | 是 | |||
├─ PageNo | string | 是 | |||
├─ RecordCount | string | 是 | |||
├─ PageSize | string | 是 | |||
├─ entities | object [] | 是 | |||
├─ groupID | string | 是 | |||
├─ groupName | string | 是 | |||
├─ parentName | string | 是 | 上级部门 | ||
├─ createTime | string | 是 |
# 获取部门详情
基本信息 Path: /adapter/group/details/{id}
Method: GET
接口描述:
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | 部门编号 | S00008034504 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 否 | |||
isSucc | string | 否 | true:执行成功,false:失败 | ||
message | string | 否 | |||
result | object | 是 | |||
├─ groupID | string | 是 | 部门编号 | ||
├─ groupName | string | 是 | 部门名称 | ||
├─ ownerID | string | 是 | 主管编号 | ||
├─ ownerName | string | 是 | 主管名称 | ||
├─ parentID | string | 是 | 所属部门编号 | ||
├─ parentName | string | 是 | 所属部门名称 | ||
├─ members | object | 是 | |||
├─ id | string | 是 | 用户唯一编号 | ||
├─ userName | string | 是 | 用户名称 | ||
├─ Remark | string | 是 | 备注 |
# 保存部门信息
基本信息 Path: /adapter/group/save
Method: POST
接口描述:
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
groupID | string | 是 | 部门编号修改时必填 | ||
groupName | string | 是 | 部门名称 | ||
remark | string | 是 | 部门介绍(备注信息) | ||
ownerID | string | 是 | 主管编号 | ||
parentID | string | 是 | 所属部门ID | ||
members | object [] | 是 | 部门成员数组 | ||
├─ id | string | 是 | |||
├─ userName | string | 是 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | true:执行成功,false:失败 | ||
message | string | 是 | |||
result | string | 是 |
# 保存联系信息
基本信息 Path: /adapter/contact/save
Method: POST
接口描述:
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ownerID | string | 是 | 拥有者编号 | ||
contactID | string | 是 | 修改时必填 | ||
contactName | string | 是 | 联系人名称 | ||
fullAddress | string | 是 | 详细地址 | ||
postCode | string | 是 | 邮政编码 | ||
provinceID | string | 是 | 省份编号 | ||
cityID | string | 是 | 城市编号 | ||
districtID | string | 是 | 区(街道编号) |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | string | 是 | |||
isSucc | string | 是 | |||
message | string | 是 | |||
result | string | 是 |
# 保存证件信息
基本信息 Path: /adapter/card/save
Method: POST
接口描述:
{ "CategoryID": 1138, "CategoryTitle": "身份证", "CategoryCode": "IDCard" },
{ "CategoryID": 1139, "CategoryTitle": "护照", "CategoryCode": "PassportCard" },
{ "CategoryID": 1140, "CategoryTitle": "学生证", "CategoryCode": "StudentCard" },
{ "CategoryID": 1141, "CategoryTitle": "军官证", "CategoryCode": "OfficerCard" },
{ "CategoryID": 1298, "CategoryTitle": "港澳通行证", "CategoryCode": "HKMpermit" },
{ "CategoryID": 1299, "CategoryTitle": "台湾通行证", "CategoryCode": "TaiWpermit" },
{ "CategoryID": 1142, "CategoryTitle": "其它", "CategoryCode": "OtherCard" },
请求参数
Body
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
ownerID | string | 是 | 拥有者编号 | ||
cardID | string | 是 | 修复时必填 | ||
cardType | number | 是 | 证件类型 | ||
cardNo | string | 是 | 证件号码 | ||
expireDate | string | 是 | 证件过期时间 | ||
countryID | number | 是 | 发证国家 | ||
Images | string [] | 是 | 图片地址 | ||
├─ | 否 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | |||
isSucc | boolean | 是 | |||
message | string | 是 | |||
result | object | 是 |
# 删除员工
基本信息 Path: /adapter/user/delete/{id}
Method: GET
接口描述:
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | 用户编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | true:执行成功,false:失败 | ||
isSucc | string | 是 | |||
message | string | 是 | |||
result | object | 是 |
# 删除部门
基本信息 Path: /adapter/group/delete/{id}
Method: GET
接口描述:
路径参数
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
id | 部门编号 |
返回数据
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
statusCode | number | 是 | |||
isSucc | boolean | 是 | true:成功,false:失败 | ||
message | string | 是 | |||
result | object | 是 |
# 前端接口
# 订单列表接口
基本信息 Path: /order/all/list
Method: GET
接口描述:
订单列表接口
请求参数 无
# 订单详情接口
基本信息 Path: /order/detail
Method: GET
接口描述:
订单详情接口
请求参数 Query
名称 | 类型 | 必须 | 默认值 | 备注 | 示例 |
---|---|---|---|---|---|
OrderID | 是 | 订单编号 | S00008398429 | ||
pageIndex | 是 | 兼容属性固定传值1 | 1 |