通知

此页面概述了向您发送预订事件提醒的通知服务。

概述

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.cancelExpedia预订取消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 集合,我们都能满足您的需求。



您觉得这个页面有用吗?
我们该如何改进这些内容?
感谢您帮助我们改进!