实施清单
设置附加模块时,请验证最终请求 URL 是否正确。
字符串值
排除该域名
请求字符串应该只包含端点和请求参数。
代码示例
`/xsell-pwa.js?partnerId=partner123&outboundEndDateTime=2014-01-02T12%3A55%3A00%2B08%3A00&...param=xyz`检查编码
请记住,所有参数值都应该是 percent-encoded UTF-8。
检查所需参数
必须传递所有必需参数。此外,务必确保:
- 您发送的是
destinationTla或latitude,longitude bookingDateTime值是过去的outboundEndDateTime是未来。- 请参阅 one-way、往返和 multi-destination 航班的指南
检查签名位置
签名应该始终是最终请求 URL 的最后一个参数。
签名
请使用正确的格式
签名应采用 Base64 编码,而不是十六进制编码。
使用正确的数据类型
转换为 Base64 编码时,请将签名视为整数,而不是字符串。
检查特殊字符
虽然 Base64 编码应该会自动处理特殊字符,但请检查您是否使用了正确的特殊字符:
- 将
+替换为-:m6y13j0747-x/h81wEzR9jE1fco= - 将
/替换为_:m6y13j0747-x_h81wEzR9jE1fco= - 从字符串中移除所有
=内边距:m6y13j0747-x_h81wEzR9jE1fco
检查长度
签名长度必须正好是 27 个字符。
检查密钥可见性
密钥不应在请求 URL 中公开显示。它只能在服务器端用于生成签名。
域和端点
请确保脚本为 protocol-agnostic
包含脚本时不要指定 HTTP 协议(使用 //xsell.expedia.com而不是 http://xsell.expedia.com),这样它会自动选择所需的协议。
检查请求 URL 的结构是否正确
最终请求 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¤cyCode=USD&bookingDateTime=2024-04-12T12%3A32%3A15%2B08%3A00&bookingId=123ABC&bookingStatus=confirmed - 签名参数(必须是最后一个元素):
&signature=bj01fgT85mUiRmzxxSufSmlGpiI
代码示例 //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¤cyCode=USD&bookingDateTime=2024-04-12T12%3A32%3A15%2B08%3A00&bookingId=123ABC&bookingStatus=confirmed&signature=bj01fgT85mUiRmzxxSufSmlGpiI
脚本集成
检查脚本
脚本应该包含在 内。<body> 如果您使用的是嵌入式模块,请检查所需的 <div>元素是否存在。
核实推荐人政策
对于嵌入式附加模块,父页面 referrer policy 应设置为 origin-when-cross-origin。