This is an auto-generated translation

构建请求 URL

请求 URL(将从附加模块返回结果的 URL)由域、端点、请求参数和签名参数组成。此示例显示,已确认 2022 年 11 月 12 日预订的飞往洛杉矶国际机场的航班,可供 2 名成人乘坐,出发日期为 2023 年 1 月 2 日,返回日期为 2023 年 1 月 12 日。

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTla=LAX&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI

构造请求参数

一般来说,请求参数包括有关预订的详细信息,例如目的地以及行程开始和结束日期。此信息用于为附加模块生成建议。有些参数在请求中是可选的,但有些参数是返回结果所必需的。

Information

重要说明

为了安全起见,请确保所有参数值都是percent-encoded UTF-8

可用的请求参数

参数说明示例值必填
partnerIdExpedia 提供的字符串值,用于在请求参数中识别您的组织partnername_hotel_conf_overlay
bookingStatus指定预订状态的字符串值,决定是否可以应用附加费率;如果预订状态为待定或失败,则不会应用附加费率已确认
bookingDateTime指定预订日期的字符串值;包括 ISO 8601 格式的日期、时间和时区2024-08-29T05:54:02

编码值: 2024-08-29T05%3A54%3A02
outboundEndDateTime指定到达目的地的字符串值;包括 ISO 8601 格式的日期、时间和时区2024-08-29T05:54:02

编码值: 2024-08-29T05%3A54%3A02
returnStartDateTime指定从目的地出发的字符串值;包括 ISO 8601 格式的日期、时间和时区 注意:如果未指定,则默认行程时长为 7 天2024-08-29T05:54:02

编码值: 2024-08-29T05%3A54%3A02
localeExpedia 提供的 5 个字符的字符串,表示预订所使用的语言。请在此查看完整的语言环境详情en_US
currencyCodeExpedia 提供的字符串,表示预订时使用的货币USD
destinationTla表示目的地国际航空运输协会 (IATA) 机场代码的 3 个字符的字符串

注意:请求 URL 必须包含此参数(对于包含航班的预订)或 latitudelongitude(如果不包含航班)
LAX有条件要求
latitudelongitude指定旅行目的地坐标的最多 12 位小数的浮点值 注意:请求 URL 必须包含此参数(如果不包含航班)或 destinationTla(对于包含航班的预订)纬度=40.7141667
&经度=-74.0063889
有条件要求
signature您将根据我们提供的密钥生成由 27 个字符组成的字母数字字符串值 请参阅构建请求 URL 了解更多信息BcND1F7KElTyGtyUHeXHd2JJLFs
numOfAdults整数,指定预订中的成人人数;最小值为 12
numOfChildren指定预订儿童人数的整数3
childAgesComma-delimited 整数数组,指定预订中任何儿童的年龄;仅当传递 numOfChildren时才需要5,4,2是的,如果传递了numOfChildren

我们提供了一些场景来帮助您了解简单和更复杂的行程的价值。

|

One-way 行程示例

对于 one-way 行程,您没有将 returnStartDateTime作为结果参数的一部分。将采用默认的 7 天。对于直达 one-way 的行程,该行程于 2024 年 9 月 10 日下午 1:00 从芝加哥出发,并于当天下午 4:00 抵达拉斯维加斯,参数如下:

  • bookingDateTime:2024-09-01T05:54:02
  • origin:ORD
  • destinationTla:阿拉伯联合酋长国
  • outboundEndDateTime: 2024-09-10T16:00:00

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2024-09-10T12%3A55%3A00%2B08%3A00&destinationTla=LAS&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2024-09-01T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI

Round-trip 示例

2024 年 9 月 14 日返回,前往相同目的地之间的直飞 round-trip 预订请求将包括以下参数:

  • bookingDateTime:2024-09-01T05:54:02
  • origin:ORD
  • destinationTla:阿拉伯联合酋长国
  • outboundEndDateTime: 2024-09-10T16:00:00
  • returnStartDateTime: 2024-09-14T18:00:00

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2024-09-102T12%3A55%3A00%2B08%3A00&returnStartDateTime=2024-09-14T22%3A30%3A00%2B08%3A00&destinationTla=LAS&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2024-09-01T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI

Multi-destination 行程示例

对于有多个目的地的旅程,我们建议仅发送第一段旅程的数据。

第 1 段:芝加哥至拉斯维加斯

  • bookingDateTime:2024-09-01T05:54:02
  • origin:ORD
  • destinationTla:阿拉伯联合酋长国
  • outboundEndDateTime: 2024-09-10T16:17:00
  • returnStartDateTime:2024-09-12T13:27:00(第 2 段开始日期和时间)

第二段:拉斯维加斯至旧金山(非必需)

  • origin:阿拉伯联合酋长国
  • destinationTla:旧金山
  • StartDateTime: 2024-09-12T13:27:00
  • outboundEndDateTime: 2024-09-15T16:10:00

第三段:旧金山至芝加哥(非必需)
  • origin:旧金山
  • destinationTla:ORD
  • StartDateTime: 2024-09-15T16:15:00
  • outboundEndDateTime: 2024-09-19T20:22:00

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundStartDateTime=2024-09-10T11%3A05%3A00&outboundEndDateTime=2024-09-10T16%3A17%3A00&origin=ORD&destinationTla=LAS&outboundStartDateTime=2024-09-12T13%3A27%3A00&outboundEndDateTime=2024-09-12T16%3A10%3A00&origin=LAS&destinationTla=SFO&outboundStartDateTime=2024-09-14T16%3A15%3A00&outboundEndDateTime=2024-09-14T20%3A22%3A00&origin=SFO&destinationTla=ORD&bookingDateTime=2024-09-01T05:54:02

构建请求 URL

所有请求 URL 都将包含域和端点,后跟请求参数,并以使用密钥生成的签名结尾。

密钥

密钥是一个字母数字字符串,由 Expedia 安全共享,用于生成验证交易的签名。它的长度为 36 个字符,并且与 partnerId 相关联。

Warning

注意

将您的密钥保存在安全的地方,并且仅用于生成签名。在 URL 构建期间不要将机密作为参数传递。

域、端点和请求参数

您的请求 URL 以域名开头。我们建议您保留请求 URL protocol-agnostic 的 Expedia 域://xsell.expedia.com/。URL 的下一部分是请求字符串,由 case-sensitive 端点组成/xsell-pwa.js?以及请求参数。记住请求参数应该是 UTF-8 percent-encoded.

步骤 1:构造请求字符串

请求字符串包括端点和请求参数(但不包含域)。它看起来应该是这样的。

/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTla=LAX&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed

第 2 步:签署请求

从步骤 1 获得的字符串(包括前导/)应签署hash-based 消息认证算法(HMAC-SHA1)使用 Expedia 共享的密钥。在大多数加密库中,生成的签名都是二进制格式。

这个加密哈希函数有很多实现,定义在RFC 2104用于计算机语言和框架。可用的实现包括:

步骤 3:对生成的签名进行编码

使用修改后的Base64对于 URL,它取代了+/Base64 输出的字符-(连字符)和_(下划线)分别使其 URL 安全(参见RFC 4648了解更多信息)。它看起来应该类似于这个:

bj01fgT85mUiRmzxxSufSmlGpiI

还要注意的是,填充=(如果有)应该从 Base64 编码字符串中删除。

步骤 4:构建最终请求 URL

将步骤 3 中的签名作为 signature 参数附加到步骤 1 中的字符串。签名应该始终是最终请求 URL 的最后一个参数。

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTla=LAX&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI

将协议(//http://https://)和域(我们建议将 //xsell.expedia.com 用于 protocol-agnostic URL)添加到结果字符串的前面。

//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundStartDateTime=2024-10-22T11%3A55%3A00%2B08%3A00&outboundEndDateTime=2024-10-22T13%3A55%3A00%2B08%3A00&returnStartDateTime=2024-10-30T20%3A30%3A00%2B08%3A00&returnEndDateTime=2024-10-30T22%3A30%3A00%2B08%3A00&destinationTla=LAX&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2024-04-12T12%3A32%3A15%2B08%3A00&bookingId=123ABC&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI

步骤 5:添加 JavaScript 代码

您将使用最终请求 URL 作为模块应出现的页面上的 JavaScript src 属性。例如:

<<script src="//xsell.expedia.com/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2023-01-02T12%3A55%3A00%2B08%3A00&returnStartDateTime=2023-01-12T22%3A30%3A00%2B08%3A00&destinationTla=LAX&numOfAdults=2&locale=en_US&currencyCode=USD&bookingDateTime=2022-11-12T12%3A32%3A15%2B08%3A00&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI"></script>>

创建请求 URL 后,您就可以将其集成到页面代码中。

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