行程信息接口
华住可以根据行程信息进行差标控制(需要企业在华住后台配置差标)
新增行程信息
- 请求路径:userInfo/sendUserTravelInfo
- 请求方式:POST
- 请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM1016431348 |
cardPassWord | String | 客户编号 | 是 | 123321a |
bookerPersonId | String | 员工编号 | 是 | 需调用员工信息收集接口 |
outerRefId | String | 企业差旅申请单号 | 是 | |
travelReason | String | 出差原因 | 是 | |
travelMoney | integer | 差标金额 | 否 | 若华住商旅平台已配置差标,同时接口中出差申请单又传值差标金额,则优先取接口中的差标金额!travelMoney是管控出差申请单的每日差标金额;若出差申请单有多天行程,请传每日差标,不要传订单总金额。 |
travelBrands | String | 差标品牌 | 否 | TravelType=YG时有效,格式:酒店品牌code:酒店品牌code:酒店品牌code,例如:(1:2:9), 此差标优先级高于员工职级对应的差标(如果配置了员工差标) |
tripsInfoList | List<TripsInfoParameter> | 行程列表 | 是 | 行程列表字段,可以传多个行程,每个行程中开始城市和结束城市是唯一的 |
travelerInfoList | List<TravelerInfoParameter> | 出差人列表 | 是 | |
costCenter | String | 成本中心 | 否 | |
remarks | String | 备注 | 否 | |
customerDictionary | String | 扩展字段 | 否 | 需要账单中体现的内容,格式对接时提供 |
TripsInfoParameter:
参数名 | 参数类型 | 描述 | 是否必填 | 备注 |
---|---|---|---|---|
beginDate | Date | 行程开始日期 | 是 | |
endDate | Date | 行程结束日期 | 是 | |
startCityId | String | 行程起始城市code | 是 | |
arriveCityId | String | 行程结束城市code | 是 | |
tripsType | String | 行程类型 | 是 | ONOEWAY:单程, ROUNDTRIP:往返 |
TravelerInfoParameter:
参数名 | 参数类型 | 描述 | 是否必填 | 备注 |
---|---|---|---|---|
travelerName | String | 出行人 | 是 | |
travelerNumber | String | 出行人员工编号 | 否 | 如果传了,客户需调用员工信息收集接口 |
cardType | String | 证件类型 | 否 | |
cardNumber | String | 证件号 | 否 | |
moblie | String | 行程类型 | 否 | |
String | 否 |
- 入参示例:
{
"bookerPersonId": "HZ12345",
"cardId": "VCENTCRM1016431348",
"cardPassWord": "123321a",
"outerRefId": "oa12344556",
"travelReason": "因公出差",
"travelMoney": 100,
"travelBrands": "1:2:9",
"tripsInfoList": [
{
"beginDate": "2021-08-02",
"endDate": "2021-08-05",
"startCityId": "310100",
"arriveCityId": "110100",
"tripsType": "ONOEWAY"
}
],
"travelerInfoList": [
{
"travelerName": "李红",
"travelerNumber": "BU123456",
"cardType": "C01",
"cardNumber": "610502198201127578",
"moblie": "13472444100",
"email": "lihh@163.com"
}
]
}
- 出参说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! 2932 该OA申请数据已经存在! 2934 该OA申请数据保存失败! 2035 该OA行程数据保存失败! 2036 该OA出行人数据保存失败! |
message | String | 响应消息 |
content | boolean | true:成功,false:失败 |
- 出参示例:
{
"code": "200",
"message": "成功!",
"content": true,
"echoToken": "3237a660-769a-464b-92df-3b49dbb3df0c"
}
撤销行程信息
- 请求路径:userInfo/revokeUserTravelInfo
- 请求方式:POST
- 请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM1016431348 |
cardPassWord | String | 客户编号 | 是 | 123321a |
bookerPersonId | String | 员工编号 | 是 | 需调用员工信息收集接口 |
outerRefId | String | 企业差旅申请单号 | 是 | 企业的oa申请单号 |
- 入参示例:
{
"bookerPersonId": "HZ12345",
"cardId": "VCENTCRM1016431348",
"cardPassWord": "123321a",
"outerRefId": "oa12344556"
}
- 出参说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | String | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! 2932 该OA申请数据不存在无法取消! |
message | String | 响应消息 |
content | boolean | true:成功,false:失败 |
- 出参示例:
{
"code": "200",
"message": "成功!",
"content": true,
"echoToken": "581171fc-5054-4a28-a7a1-6a5668055c77"
}
获取城市数据接口
- 说明:查询行政区编码,保证行程信息中的城市编码符合华住的需求。客户根据自身系统需要,自行评估是否需要对接。
- 测试接口地址:https://test-hb2b.huazhu.com/region/getRegionInfo
- 生产接口地址:https://hb2b.huazhu.com/region/getRegionInfo
- 请求方式:POST
- 请求参数说明:
参数名 | 参数类型 | 备注 | 是否必填 | 示例值 |
---|---|---|---|---|
cardId | String | 公司卡号 | 是 | VCENTCRM1016431348 |
cardPassWord | String | 公司卡密码 | 是 | 123321a |
regionCode | String | 行政区代码 | 是 | 01 注:01是顶级行政区代码,代表中国 |
- 请求示例:
{
"cardId": "VCENTCRM1016431348",
"cardPassWord": "123321a",
"regionCode": "01"
}
- 返回参数说明:
参数名 | 参数类型 | 备注 |
---|---|---|
code | code | 状态码 200 成功! 500 应用程序繁忙,请稍后再试! 521 企业V卡号或者验证码错误! |
message | String | 响应消息 |
content | RegionDTO | 行政区信息 |
- RegionDTO:
参数名 | 参数类型 | 备注 |
---|---|---|
regionCode | String | 行政区Code |
regionName | String | 行政区名 |
regionNameEn | String | 行政区英文名 |
regionZhSpell | String | 行政区全拼 |
regionZhShortSpell | String | 行政区简拼 |
regionLevel | String | 行政区级别 ROOT:根 COUNTRY:国家 CITY:城市 DISTRICT:区县 |
isDomestic | Bool | 是否国内城市 |
regionSortIndex | Int | 行政区下标 |
isHot | Bool | 是否热点行政区 |
groupCode | String | 所属组(首字母大写) |
lat | String | 行政区经度 |
lng | String | 行政区纬度 |
childNodes | List<RegionDTO> | 子行政区 |
- 返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"regionCode": "TW1000",
"regionName": "台北",
"regionNameEn": "TAIBEISHI",
"regionZhSpell": "TAIBEISHI",
"regionZhShortSpell": "TBS",
"regionLevel": "CITY",
"isDomestic": true,
"regionSortIndex": 890,
"isHot": false,
"groupCode": "T",
"lat": "0.0",
"lng": "0.0",
"childNodes": [
{
"regionCode": "TW1008",
"regionName": "大安区",
"regionNameEn": "DAANQU",
"regionZhSpell": "DAANQU",
"regionZhShortSpell": "DAQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1152,
"isHot": false,
"groupCode": "D",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
},
{
"regionCode": "TW1007",
"regionName": "松山区",
"regionNameEn": "SONGSHANQU",
"regionZhSpell": "SONGSHANQU",
"regionZhShortSpell": "SSQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1213,
"isHot": false,
"groupCode": "S",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
},
{
"regionCode": "TW1006",
"regionName": "中山区",
"regionNameEn": "ZHONGSHANQU",
"regionZhSpell": "ZHONGSHANQU",
"regionZhShortSpell": "ZSQ",
"regionLevel": "DISTRICT",
"isDomestic": true,
"regionSortIndex": 1420,
"isHot": false,
"groupCode": "Z",
"lat": "0.0",
"lng": "0.0",
"childNodes": []
}
]
},
"echoToken": "c9063c70-baa4-494e-b7ee-1795fb465988"
}