API测试>>

酒店

酒店-修改订单更新时间:2024/04/11 16:57

方法名称

hotel.order.update(废弃)

使用说明

1.    只能修改非担保的前台现付订单,并且是新单、已审和已确认、满房、特殊满房五个状态的订单

2.    最晚修改时间: 在新单、已审状态下为最晚到店时间,在已确认状态下为入住日的24点

4.    属性含义和规则都和提交订单接口相同,可以为空的属性,若不修改请设置为NULL

5.    修改订单的时候,请验证参数逻辑有效性。同时考虑房量(新增加的房量或新增加的日期的房量都是否可卖),减少修改失败

6.    修改订单时总价可能发生变化,请传入总价进行校验,成功后获取修改后订单的总价;如果修改后GuaranteeMoney大于0,则表示该订单已是担保订单

7.    不适用场景:仅离店日延期、增加房间数量;这时候建议创建新单,因为修改后的订单如果确认失败会导致整个订单失败。其他的预订内容变化,能用update接口实现的就不要使用create接口。

8.    须使用https访问本接口。

输入参数

节点名称类型可为空说明
OrderId订单编号LongN
RoomTypeId房型编号String(10)N
RatePlanId产品编号IntN必须为现付产品。变更RatePlan时只能变更为同一hotelcode下的RatePlan。
ArrivalDate入住日期DateN
DepartureDate离店日期DateN
EarliestArrivalTime最早到店时间DateTimeN
LatestArrivalTime最晚到店时间DateTimeN
NumberOfRooms房间数量IntN
NumberOfCustomers客人数量IntN
TotalPrice订单总价DecimalN校验传入的总价和系统修改后价格,若不相等则拒绝本次订单修改
Contact联系人ElementYhotel.order.create#Contact
IsForceGuarantee是否强制担保BooleanY版本V1.08新增。
强制担保对应的担保金额是首晚,并且不可变更取消。
建议不要使用该字段。一般是产品无担保规则,酒店对某个特定订单要求临时增加担保的时候使用。客服会将设置强制担保属性,代理使用hotel.order.pay接口支付即可。
IsGuaranteeOrCharged是否已担保或已付款BooleanN开通了公司担保业务的合作伙伴才能使用该属性
CreditCard信用卡ElementY参考hotel.order.create#CreditCard
DoveCorpCard第三方支付
DoveCorpCardY担保订单和预付订单才须传第三方支付信息。
如果IsGuaranteeOrCharged为false,则一定不能传第三方支付信息。
参考DoveCorpCard节点
OrderRooms预订的房间数OrderRoom[]N参考hotel.order.create#OrderRooms
NoteToHotel客人对酒店的特殊要求string(100)Y更新订单的时候,先看看原来填写了什么内容。这里传入的内容将追加在原内容之后。

响应结果

节点名称类型可为空说明
OrderId订单编号LongN
CancelTime最晚取消时间DateTimeN
GuaranteeAmount担保金额DecimalY
GuaranteeCurrencyCode担保金额的货币EnumY RMB,HKD,MOP,TWD
TotalPrice订单总价DecimalN更新订单后总价可能改变
CurrencyCode总价的货币EnumN RMB,HKD,MOP,TWD
IsInstantConfirm是否是即时确认booleanYv1.19新增。采用这个属性,就不需要再请求hotel.order.instant接口了。
即时确认只说明这个库存确认方式,最终能否确认给客人还需要考虑订单是担保订单(担保订单需要担保成功后才能确认)
PaymentDeadlineTime支付最后期限DateTimeYv1.19新增。如果担保订单,提交的信用卡因某种原因支付失败,系统可以保留一段时间继续支付。如果这个时间点还没有成功支付系统将自动取消订单。
继续支付请使用 hotel.order.pay接口
PaymentMessage支付错误信息stringYv1.19新增。

输入示例

https://api-test.elong.com/rest?format=json&method=hotel.order.update
&user={userid}&timestamp=1488508207&signature=1b34c24f5c31381a67c666f4dc211077
&data={"Version":"1.28","Local":"zh_CN","Request":
{"OrderId":"1234567","RoomTypeId":"1043","RatePlanId":"8703",
"ArrivalDate":"2017-3-7","DepartureDate":"2017-3-8","EarliestArrivalTime":
"2017-3-7 14:00","LatestArrivalTime":"2017-3-7 17:00","NumberOfRooms":"1",
"NumberOfCustomers":"1","IsGuaranteeOrCharged":"true","OrderRooms":"1044"}}

输出示例

{
   "Code":"0",
   "Result":{
        "OrderId":12345678,
        "CancelTime":"9999-12-30 00:00:00".
        "IsInstantConfirm":false
    }
    "Guid":"196d84d9-19b1-4aa2-8891-1c699e806a3c"
}

常见错误码

错误码解释解决方法
H000005入住日期不能为空 可能是日期格式错误导致的,支持的日期时间格式:"yyyy-MM-dd",   "yyyy-MM-dd HH:mm:ss"
H000018{0}含有非法字符提交的信息不能包含如下9个特殊字符:'<', '>', '&', '\'',   '"', ';', '\\', ':', '='
H000997未知异常重试,反复出现请联系技术支持人员
H001013是否已担保或已付款必须填写开通了公司担保业务,如果订单需要支付,则IsGuaranteeOrCharged必须为true,且不能传入信用卡信息。
H001037信用卡失效或已担保或已支付业务已经失效可能的原因有两个,一是没有开通虚拟卡业务的,那么就是传入的信用卡失效,让客户传入可用的信用卡;如果开通了虚拟卡业务,则是虚拟卡过期,联系商务解决。
H001039预付或强制担保订单必须设置为已经担保或已经支付开通了公司担保业务,如果订单需要支付,则IsGuaranteeOrCharged必须为true,且不能传入信用卡信息。
H001040无支付或担保权限,不能设置为已经担保或已经支付即没有开通虚拟卡业务,如要开通,需要联系商务。
H001041使用已担保或已支付业务,不需要提供信用卡信息开通了公司担保业务,如果订单需要支付,一定不要传入信用卡信息。
H001152预付或强制担保订单使用虚拟卡业务,不需要提供信用卡信息与第三方支付信息

开通公司担保业务且未开通公司第三方支付,如果订单需要支付,一定不要传入信用卡信息与第三方支付信息。

H001153预付或强制担保订单使用第三方支付业务,不需要提供信用卡信息

开通公司第三方支付,如果订单需要支付,一定不要传入信用卡信息。

H001154预付或强制担保订单使用第三方支付业务,需要提供第三方支付信息

开通公司第三方支付,如果订单需要支付,需要提供第三方支付信息。

H001155无支付或担保权限,不需要提供第三方支付信息

未开通公司第三方支付,一定不要提供第三方支付信息。

H001156无法确认开通支付业务的权限类型(虚拟卡业务或第三方支付业务)

担保业务与第三方支付业务不能同时开通,需联系商务解决。

H001083获取产品信息失败,可能酒店、房型和RatePlan无效或未关联,也可能无对应库存或房价遇到这个问题,首先检查HotelId、RoomTypeId和RatePlanId对应关系是否正确(HotelId不要传HotelCode,RoomTypeId不要传RoomId)。如果对应正确,那么可能是库存失效导致的,大部分原因是因为数据更新不及时,用户搜索得到结果后过了一段时间才下单,此时数据已发生变化,无库存、满房、无价、不符合预定规则。该问题不可能完全杜绝,离线数据模式可以通过及时更新数据来减少。
H001085底层提交订单异常重试,反复出现请联系技术人员解决。
H001086尾房产品应该在合适的时间销售参考hotel.data.rp接口中是否今日特价字段及其日期。
H099999999未知错误重试,反复出现请联系技术人员解决。
H100999系统异常重试,反复出现请联系技术人员解决。
H101093底层提交订单保存异常,请重试重试,反复出现请联系技术人员解决。
H001095给酒店的备注不能包含:务必、一定、必须此类话语主要是港澳酒店不允许出现。
H001044-3计算订单价格失败 重试,反复出现请联系技术人员解决。
H001044-4计算订单担保金额失败重试,反复出现请联系技术人员解决。