酒店供应商集成
Hotelbeds API 集成:内容、映射与实时预订
Hotelbeds API 集成包含两项工作,而不是一项。先下载并存储酒店内容,再基于实时价格进行预订。PHPTRAVELS 在酒店模块中同时完成这两项工作,使用的是您自己的 Hotelbeds 合同和密钥。
- Content API 同步
- Booking API 流程
- BOOKABLE 与 RECHECK 价格
- 酒店映射
Hotelbeds 各 API 如何协同工作
Hotelbeds API 集成:一侧是内容,另一侧是预订
Hotelbeds 将酒店 API 分为两部分。Content API 返回静态数据:描述、图片、设施、餐食类型和房型。Booking API 返回实时房态和价格,并完成预订。点击中间的步骤,查看它使用哪些调用。
Content API
静态数据,存储在您这一侧- 酒店列表
hotels · from=1&to=1000您产品组合中的所有酒店,每次请求最多返回 1,000 家酒店。 - 设施、餐食类型和房型
facilities · boards · rooms代码表,用于把 Booking API 返回的代码转换成客人能看懂的文字。 - 图片
photos.hotelbeds.com/giata/部分图片路径,与 Hotelbeds 图片服务器拼接,获取所需尺寸。 - 每日变更
lastUpdateTime首次加载完成后,每天使用 lastUpdateTime 发送一次请求,只返回发生变化的数据。
请求流程
Booking API
实时调用,按客人请求- 房态查询
POST /hotels按酒店代码、日期和入住人数返回房型、餐食、价格和取消费用。 - 价格复核
POST /checkrates为标记为 RECHECK 的价格返回最新价格和条款,以及升级选项。 - 预订
POST /bookings使用预订人和客人姓名确认所选 rateKey,并返回预订编号。 - 取消
DELETE /bookings · simulate模拟取消以显示取消费用,或正式取消预订。
大多数失败的 Hotelbeds 项目都把这两部分混在一起。有的在客人搜索时调用 Content API,速度慢,而且 Hotelbeds 明确警告这可能导致凭证被封禁。有的在没有存储代码的情况下直接实时搜索,结果无法显示图片和设施。PHPTRAVELS 将两者分开:内容在后台同步,只有房态查询、价格复核和预订调用会在客人等待时运行。
如果您想了解这家供应商本身、其产品以及如何开户,请阅读 Hotelbeds 供应商介绍。本页介绍的是技术集成。
价格类型
影响结账流程的四个价格字段
每个 Hotelbeds 价格都带有几个属性,决定您能否直接预订、可以显示什么价格以及由谁收款。以下是您的引擎在每条结果中都必须读取的字段。
| 字段 | 情况一 | 情况二 | PHPTRAVELS 的处理方式 |
|---|---|---|---|
可直接预订或需复核rateType | BOOKABLE价格是最新的,无需再次调用即可预订。 | RECHECK必须先调用价格复核,获取最新价格和条款。 | 对 RECHECK 价格在支付前执行价格复核,并向客人显示任何变化。 |
净价或佣金价net · sellingRate | net净价模式:价格为净价,由您自行加价。 | sellingRate佣金模式:佣金已包含在 sellingRate 中,该价格为最终价格。 | 对净价应用您的加价规则,对佣金价按 sellingRate 销售。 |
固定售价hotelMandatory | truehotelMandatory 为 true:必须按 sellingRate 销售。 | false · null净价中该字段为 false 或为空:您可以自行设定利润。 | 当酒店有要求时,无论加价规则如何,都将显示价格锁定为 sellingRate。 |
客人何时付款paymentType | AT_WEB预订时通过您的网站收款。 | AT_HOTEL客人直接向酒店付款。 | 将价格标记为立即支付或到店支付,并相应调整结账流程。 |
您获得哪种定价模式取决于您的 Hotelbeds 合同。按照 Hotelbeds 的说明,由您的销售经理为您的业务推荐合适的模式。
酒店映射
将 Hotelbeds 酒店与您已在销售的酒店匹配
如果您有自签合同或第二家供应商,同一家酒店会以不同代码出现。映射将它们关联起来,让客人看到的是一家带最优价格的酒店,而不是三个重复条目。
- Harbour View Hotel里斯本48291397%已匹配
- Old Town Suites布拉格11735492%已匹配
- Palm Court Resort迪拜66201874%审核
- Casa Azul Boutique塞维利亚–0%无匹配
- Northern Lights Lodge特罗姆瑟90522766%审核
- Riverside Apartments布达佩斯33076198%已匹配
示例界面,酒店和代码均为虚构。
Hotelbeds XML 或 JSON
每个请求都需签名,测试从小规模开始
很多团队仍在搜索 Hotelbeds XML,但当前文档展示的是 JSON 请求。无论哪种格式,操作都相同,且每个请求都带有两个请求头。
1# X-Signature = SHA256(api key + secret + unix time in seconds) 2TS=$(date +%s) 3SIG=$(printf "%s%s%s" "$API_KEY" "$SECRET" "$TS" | sha256sum | cut -d" " -f1) 4 5curl -X POST https://api.test.hotelbeds.com/hotel-api/1.0/hotels \ 6 -H "Api-key: $API_KEY" \ 7 -H "X-Signature: $SIG" \ 8 -H "Accept: application/json" \ 9 -H "Content-Type: application/json" \10 -d '{11 "stay": { "checkIn": "2026-11-14", "checkOut": "2026-11-17" },12 "occupancies": [{ "rooms": 1, "adults": 2, "children": 0 }],13 "hotels": { "hotel": [482913, 117354] }14 }'1516# hotel codes come from your stored Content API data, never a live content call
- 两个请求头
- Api-key 填写您的密钥;X-Signature 为您的密钥、密钥密文和当前秒级时间戳的 SHA256 哈希值。
- 测试主机
- 按照 Hotelbeds 的说明,测试服务器与生产环境一致,但其中的预订不是真实预订,银行卡也不会被扣款。
- 每天 50 次请求
- 新密钥会开通评估环境,配额为每天 50 次请求。完成认证后可获得更多配额。
- 不实时调用内容
- Hotelbeds 警告,实时调用 Content API 可能导致凭证被封禁。PHPTRAVELS 从不这样做。
内容同步规划器
您的酒店列表需要多少次 Content API 调用
按照 Hotelbeds 的说明,酒店列表按每页最多 1,000 家返回;首次加载后,每天一次 lastUpdateTime 请求只返回变更。输入您的数据来规划同步。
- 首次全量加载所需请求数
- 20
- 每次每日更新所需请求数
- 3
- 在评估配额下完成一次加载所需天数
- 1
仅为酒店列表的估算。代码表和图片还会增加少量调用。评估配额为每天 50 次请求,建议先用一个目的地进行测试。
上线检查清单
切换到正式环境前需要准备什么
Hotelbeds 通过其控制台引导您从评估到认证,再到获取正式密钥。以下是 Hotelbeds API 集成应首先覆盖的要点,以及 PHPTRAVELS 的实现方式。
- 在后台添加评估密钥,并选择测试主机
- Content API 已同步到您的数据库,并设置每日更新任务
- 酒店已映射到您的列表,存疑匹配已审核
- RECHECK 价格在支付前经过价格复核
- hotelMandatory 为 true 时遵守 sellingRate
- 客人付款前显示价格备注和取消费用
- 确认单显示 Hotelbeds 预订编号和价格备注
- 先模拟取消,再确认取消,并记录取消费用
认证步骤和正式环境权限由 Hotelbeds 根据您的合同和市场决定。
包括两部分。一是通过 Content API 进行后台同步,将酒店、图片、设施、餐食类型和房型存入您的数据库;二是通过 Booking API 实现实时流程,包括房态查询、价格复核、预订和取消。PHPTRAVELS 在酒店模块中同时运行这两部分。
人们仍然称之为 Hotelbeds XML,但当前的 Hotelbeds 文档展示的是 JSON 请求和响应。无论哪种格式,操作都相同,PHPTRAVELS 会为您处理格式问题。
BOOKABLE 价格已是最新,可以直接预订。RECHECK 价格需要先调用价格复核,返回当前价格和条款。PHPTRAVELS 会在支付步骤之前完成这次调用。
速度慢,而且 Hotelbeds 警告实时使用 Content API 可能导致凭证被封禁。内容应分页下载、存储,并每天使用 lastUpdateTime 更新一次,PHPTRAVELS 正是这样工作的。
需要。您需在 Hotelbeds 注册、签订合同,并获得自己的 API 密钥和密文。新密钥在评估环境中使用,每天 50 次请求,直到您完成认证。
可以。酒店映射会关联不同来源中的同一家酒店,让客人看到一家带最优可用价格的酒店,而每个来源保留各自的加价和规则。
PHPTRAVELS 套餐起价 ,为一次性授权并提供源代码。您的 Hotelbeds 合同另行签订,直接与 Hotelbeds 协商。请查看价格页面或联系销售获取报价。
