实施清单
设置附加模块时,请验证最终请求 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>
元素。
验证推荐人政策
对于嵌入式附加模块,父页面引荐来源策略应设置为origin-when-cross-origin
。