通知
此页面概述了向您发送预订事件提醒的通知服务。
概述
Rapid API 通知解决方案可让您比以往更紧密地与 Rapid 集成。如发生影响您业务的变更,Rapid 将通过标准 POST 消息直接向您的系统推送变更详情。借助我们的推送通知,您可以了解情况、简化操作并扩大业务规模。
当前我们支持发生在 API 范围外的所有预订事件的通知。因此,如果呼叫中心做出变更或酒店取消预订,您将立即获得通知。这只是一个开始,我们将会推出更多通知事件类型。
通过实现与您业务的无缝集成,这些通知可为下列 Rapid 产品和服务锦上添花。
- Rapid
- 联盟伙伴 Voyager 客服预订工具
- 合作伙伴和客户支持服务
现在我们面向通知支持的所有事件类型提供测试 API。请在下面的下一主要部分中查看完整的详细信息。如果您不希望设置自己的请求,也可以使用我们的全新通知测试程序工具。
支持的消息类型
Rapid 通知会在发生下列事件时,通过消息向您的系统发送通知:
event_type 值 | 来源 | 活动 | 详细信息 |
---|---|---|---|
itinerary.agent.create | 客户支持客服或联盟伙伴 Voyager | 预订创建 | Rapid 客户支持客服或联盟伙伴 Voyager 创建了一个新预订。 |
itinerary.agent.change | 客户支持客服或联盟伙伴 Voyager | 预订更新 | Rapid 客户支持客服或联盟伙伴 Voyager 更新了一个现有预订。 |
itinerary.agent.cancel | 客户支持客服或联盟伙伴 Voyager | 预订取消 | Rapid 客户支持客服或联盟伙伴 Voyager 取消了一个现有预订。 |
itinerary.supplier.cancel | 酒店 | 预订取消 | 酒店取消了一个现有预订。客户应与您企业的客户支持联系。 |
itinerary.supplier.confirm | 酒店 | 预订更新 | 酒店已更新预订的住宿确认 ID。 |
itinerary.fraud.cancel | Expedia | 预订取消 | Expedia 取消了一个现有预订,因为该预订不符合适用于交易的条款和/或条件。客户将需要发送邮件至 transactionprocessing@travelscape.com 进行联系,并提供电话号码以及最适合讨论取消事宜的时间。 |
itinerary.message.received | 酒店 | 新住宿消息中心消息 | 住宿通过住宿消息中心 (PMC) 发送了一条新消息。此事件将包含完整的住宿信息文本。除了通知之外,还可以通过电子邮件和 PMC 工具访问消息。 |
itinerary.supplier.change | 提供商 | 预订更新 | 由于旅客延迟到店或提前退房,酒店方变更了现有订单。 |
itinerary.traveler.noshow | 提供商 | 旅客预订后未入住 | 旅客预订后未入住;因此提供商将预订标记为“预订后未入住”。 |
itinerary.supplier.refund | 提供商 | 预订更新 | 对于 Expedia Collect 订单,酒店方将按照旅客要求提供退款。合作伙伴有责任确保旅客收到退款。 |
消息模式和详细信息
所有消息均符合下面概述的模式。由于针对不同的事件添加了新消息类型,该模式可能会有所不同。
对象 | 说明 |
---|---|
event_id | 每个消息的唯一标识符。 |
event_type | 指示导致发送通知的事件。此值可用于消息处理和路由。有关详细信息,请参考事件类型列表。 |
event_time | 事件通知的时间戳,采用 UTC。 |
itinerary_id | 受影响预订的行程 ID。 |
email | 与受影响行程关联的客户邮箱地址。 |
message | 事件通知的描述。 |
affiliate_reference_id | 受影响预订的联盟伙伴参考 ID。 |
每条消息均为包含 JSON 消息正文的 HTTPS POST 请求。
请注意:需要针对每种事件类型分别为合作伙伴启用,合作伙伴才能收到通知。如果您想启用新的通知 API 事件类型,请联系 Rapid 支持。
itinerary.agent.create 的示例:
{
"event_id": "dbacce6c-afcb-4b23-ae66-48050757551c",
"event_type": "itinerary.agent.create",
"event_time": "2017-08-09T16:47:32.039Z",
"itinerary_id": "8091234567890",
"email": "customer@example.com",
"message": "An agent created a new itinerary.",
"affiliate_reference_id": "b086d299-2f1f-4134-a23c-f4a1c9286fac"
}
itinerary.supplier.confirm 的示例:
{
"event_id": "e02d6f41-4708-476f-915d-8a7032942e94",
"event_type": "itinerary.supplier.confirm",
"event_time": "2018-04-28T20:31:03.423Z",
"itinerary_id": "8999989898988",
"email": "alice@example.com",
"message": "The supplier confirmed one or more rooms on this itinerary.",
"affiliate_reference_id": "R194193582",
"rooms": [
{
"confirmation_id": {
"expedia": "926784314",
"property": "BEF23123AA"
}
},
{
"confirmation_id": {
"expedia": "926784315"
}
}
]
}
itinerary.message.received 的示例:
{
"event_id": "1aed5641-7285-4c42-b079-f5f2f139d148",
"event_type": "itinerary.message.received",
"event_time": "2023-11-14T02:33:18.860105363Z",
"itinerary_id": "9025254271673",
"email": "john@email.com",
"message": "We accept your request for river view room. Looking forward to your visit",
"affiliate_reference_id": "b086d299-2f1f-4134-a23c-f4a1c9286fac"
}
集成
接收消息
要开始接收通知,您将需要建立一个端点,该端点可以接受将推送到您的端点的 POST 消息。端点应该:
- 可公开访问。
- 启用 HTTPS 和 TLS 1.2 或更高版本。
- 配置受大多数现代应用程序信任的有效 TLS 证书(自签证书可能不受信任)。
与您的 Rapid 集成顾问合作,进行设置并向其提供下列信息:
- 您要订阅的事件类型列表(已在上面列出)。
- 用于处理消息的端点 URL。
我们正在努力向您提供各种自助服务工具,对您的集成进行测试。到那个时候,您的集成顾问可以帮助您进行测试预订,以确认您是否收到订阅的离线事件的通知。
重要的配置说明
- Rapid 使用基于云的服务器 - 可确保您的侦听程序端点配置为接收来自不同的可能 IP 地址的通知推送。
- 如果您要变更端点 URL,在我们验证您的新 URL 是否可以接收通知推送之前,您必须使原始 URL 处于有效状态。在进行此类变更之前,请联系您的 Rapid 代表。
- 只有一个 URL 可以用于通知 – 不支持对
event_type
或其他条件进行变更。
处理消息
当您收到预订事件已发生的消息时,请使用消息中的行程 ID 和邮箱地址检索最新的预订详细信息。
消息可能是无序的。请参考时间戳以确定排序并检索预订事件的行程以获取更新的状态。
收到消息后,您的集成必须使用相应的 HTTP 状态代码响应。未收到 200 级别状态代码的任何消息都将被视为未送达,通知服务会将其排入队列进行重试。
处理结果 | 详细信息 | 响应状态代码 |
---|---|---|
成功 | 已按预期收到消息。已正确处理消息。 | 200 |
失败 | 未按预期收到消息。无法正确处理消息。 | 400s |
失败 | 由于出现客户端服务器错误,客户端无法处理消息。 | 500s |
无法送达的消息
如果我们无法成功向您的端点传递消息,将会自动重试下列安排:
- 首先在 5 分钟后重试。
- 然后在 1 小时后重试。
- 后续每隔 12 小时重试一次,持续 7 天(共 14 次)。
如果我们未收到接收确认(200 OK 状态代码),并且消息排入重试队列,您可能会收到重复的消息。您可以识别重复的消息,方法是找到具有相同 event_id
,但 timestamp
比原始消息晚的消息。
通知无法送达 API
此请求会返回订阅和测试端点的任何无法送达的通知。根据提供的 API 密钥返回消息。在主动投递尝试 7 天后,消息将被视为无法送达并被移入存储区以供此 API 检索(请参阅上一节)。
- 无法送达的消息只会被返回一次。您请求返回的任何消息都将从数据存储中删除。请相应地计划您对此 API 的响应处理。
- 每个请求最多返回 25 条无法送达的消息。
- 对 api.ean.com 的请求将在一个响应中返回测试和生产通知。我们测试端点 test.ean.com 的请求未得到官方支持。我们建议不要在生产端点上线后立即使用测试端点,因为这样做可能会返回生产通知并后续遭到删除。
消息模式和详细信息
此 API 返回的无法送达的消息采用与生产通知相同的模式,如上文前面的部分所述。
示例 - 2 条无法送达的消息
[
{
"event_id": "e02d6f41-4708-476f-915d-8a7032942e94",
"event_type": "itinerary.agent.change",
"event_time": "2018-04-28T20:31:03.423Z",
"itinerary_id": "1204309424793",
"email": "alice@example.com",
"message": "An agent changed this itinerary.",
"affiliate_reference_id": "R194193582"
},
{
"event_id": "fe97op1b-595a-406e-8e0e-90108d5cb4a1",
"event_type": "itinerary.agent.cancel",
"event_time": "2018-05-24T04:08:50.839Z",
"itinerary_id": "1204329124126",
"email": "bob@sample.net",
"message": "An agent canceled one or more rooms on this itinerary.",
"affiliate_reference_id": ""
}
]
通知测试 API
Rapid 通知测试 API 可让您将请求测试通知发送到指定的测试端点,以验证您与通知服务的集成。您也可以使用我们的通知服务测试程序将测试通知直接发送给端点,而无需建立您自己的请求。
重要说明
此服务的请求功能未向生产通知 API 提供 - 您不能将请求发送到上线端点以触发或刷新生产通知。请求通过该测试 API 提供,仅用于测试目的。
由于此 API 仅用于测试目的,其 POST 请求触发只能通过 test.ean.com 提供。
消息模式和支持的消息类型
所有测试通知遵循与生产通知相同的模式和消息类型,如本节之前的通知 API 文档中所述。
集成
接收消息
要开始接收测试通知,您将需要建立一个可公开访问的 HTTPS 端点,该端点可以接受将推送到您的端点的 POST 消息。
与您的 Rapid 集成顾问合作,进行设置并向其提供下列信息:
- 您要订阅的用于测试的事件类型列表(已在上文前一部分中列出)。
- 测试端点用于处理测试通知的 URL。
如果您在请求 30 分钟之还没收到测试通知,请联系您的 Rapid 集成顾问,让其帮助您解决问题。
重要说明
重要说明
- 在您收到的通知中,测试通知和生产通知之间没有区别。强烈建议您特别为测试通知设置端点,以便主动地隔离测试消息和生产消息。
- 如果您为测试和生产设置了不同的端点,将仅在您的测试端点收到测试通知,同样地,您只会在生产端点收到生产通知。
通过为测试和生产设置不同的端点,您在测试端点只会收到测试通知,同样地,生产端点也只收到生产通知。
验证通知
为了验证通知是否来自 Rapid,我们将发送一个请求标头来验证事件。
当 Rapid 发送通知时,您将收到一个 Authorization 标头。这与您随任何请求发送到 API 的 Authorization 标头相同。
Rapid 将以如下格式发送 Authorization 标头:
Authorization: EAN
APIKey=yourAPIKey,Signature=sha512Hash,timestamp=UNIXTimestampUsedForTheSignature
确认
要确认事件,您需要将标头中的签名 SHA512 哈希值与您使用 API 密钥、共享秘钥和请求标头中的时间戳生成的进行比较。
请参阅签名身份验证参考页面了解如何构建哈希值。
重要说明
API 详情
查看此页面上与通知相关的端点定义,然后使用 API Explorer 或其他测试软件来了解示例和模式定义与实际输出的比较。
其他资源
无论您是想尝试所有 Rapid API 端点还是下载其 OpenAPI 规范或我们的 Postman 集合,我们都能满足您的需求。