实施和设置
为旅客提供积分或里程以外的价值
通过白标模板,您的旅客可以赚取会员奖励(无论您的计划如何定义),然后通过旅行消费兑换奖励。本文档概述了可用的会员计划操作,并介绍了在测试和生产环境中实施服务的流程。
您将提供带有 JSON 有效负载的标准 RESTFul 服务。我们建议对所有 API 请求使用访问令牌和 JSON web 令牌。调用 API 时还会涉及额外的安全步骤,请求和响应有效负载中的所有敏感数据元素都将被加密。
在设置模板网站时,您可以选择允许客户兑换他们通过所选业务线赚取的会员奖励。
此外,他们还可以联系 Expedia 品牌网站的客服来使用这些积分。我们的内部客服会使用帐户信息 API 来验证旅客信息。通过验证后,他们会利用积分银行 API 获取旅客的帐户余额并协助预订。
您的 Expedia 项目上线经理将与您合作,获取包括 SSO 设置在内的所有必要详细信息,例如:您的品牌或计划名称、计划中的所有会员等级或积分段、会员奖励名称以及兑换比例(例如,消费 $1 = 100 积分)。
我们还需要您提供:
- 访问令牌 API
- ClientId 和密钥
- 会员积分兑换端点
- 您与客户沟通的服务级别协议 (SLA)
对于在您终端的设置,我们将提供:
- OpenAPI 规范
- 如果使用 Authorization2 参数,则提供 JSON web 密钥 (JWK) 端点
调用 API
Expedia 使用访问令牌调用 API。访问令牌将作为 Bearer 令牌在授权 HTTP 标头中提供。系统将生成所需的请求签名令牌,并在 Authorization2 HTTP 标头中提供。
授权端点
要获取用于 API 调用的访问令牌,首先需要用 ClientId 和密钥设置授权服务器。然后使用 POST : https://<your-oauth-endpoint>
调用来提出请求。
请求
字段 | 说明 | 示例值 | 字段类型 | 是否必填? |
---|---|---|---|---|
content-type | 表示请求格式 | application/x-www-form-urlencoded | 字符串 | 是 |
grant_type | 针对请求的授权方式,如客户端凭据 | client-credentials&client_id=<client_id>&client_secret=<client_secret> | 字符串 | 是 |
client_id | 已注册的应用程序标识符 | a17c21ed& | 是 | |
client_secret | 与 client_id 对应的密钥 | 是 |
响应
字段 | 说明 | 示例值 | 字段类型 | 是否必填? |
---|---|---|---|---|
content-type | 表示响应正文格式 | application/json | 字符串 | 是 |
token_type | 令牌的受众;表示提供的访问类型 | Bearer | 是 | |
access_token | 引用 client_id 的访问令牌 | 是 | ||
expires_in | 访问令牌的过期时间,以秒为单位 | 86400 | 是 |
错误
字段 | 说明 | 示例值 | 字段类型 | 是否必填? |
---|---|---|---|---|
error | 发生错误,如参数无效 | invalid_request invalid_client invalid_grant | 字符串 | 是 |
errorMessage | 用于协助日志记录和问题调查的自定义错误消息 | 字符串 | 是 |
JWK 端点响应
我们将与您共享一个 URL,您可以从中获取 JWK 用于验证。例如:GET : https:// <WLT_Domain>/keys/public-keys --header Authorization : Bearer - Partner_client_api_key
字段 | 说明 |
---|---|
alg | 签名算法 |
kty | 加密密钥类型 |
kid | 密钥标识符 |
use | 密钥的用途:用于签名 (sig ) 或加密 (enc ) |
x5t | X.509 证书指纹 |
x5c | X.509 证书链 |
expires_on | 证书到期日期 |
请求签名
我们建议使用 JSON web 令牌 (JWT) 为所有 API 请求签名。请求签名的步骤如下:
- 我们会设置 2048 位 CA 签名的 RSA 私钥。
- 我们会通过 JWK URL 发布公钥证书(如上所述)。
- 然后,我们会创建一个包含签发者、主题、受众和过期声明的 JWT 令牌,并使用私钥为令牌签名。
- Expedia JWT 令牌将包含密钥标识符 kid 和 x5t,其中包含公钥证书的指纹。
- 执行 API 调用时,您将从授权标头中提取 JWT,并使用 Expedia 的公钥验证 JWT 签名。您会使用 kid 标头来识别密钥(如果 Expedia 的 JWK URL 中存在多个密钥)。
- 接下来,您会安排一次对 Expedia 的 JWK 端点的 API 调用,以获取公钥证书。
- 如果签名验证失败,还可以使用重试逻辑获取新证书。