跳转到内容

与 TripPay 集成

本文包含如何与 TripPay 集成的端到端示例。

建议您已经阅读过:

以下是成功使用 TripPay 支付预订费用的步骤:

  1. 确保您在预订合同中提到的受益人已被映射。
  2. 让旅行者选择他们想要预订的库存并准备付款。
  3. 创建一个 payable contract 使用包含要预订的项目的 TripPay。
  4. 让旅行者使用 TripPay Web 组件付款。

我们假设你已经完成Step 1Step 2并准备让 TripPay 知晓预订情况。

:::注意 前往支付 API 了解更多关于创建付款合同的要求。 :::

这是一个 JSON 示例请求,其中包含您为第一个应付合同需要创建的所有内容。

{
"user": {
"userIdentifier": "191d5729-0b90-4000-85df-1bea7a6e9a01",
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]"
},
"affiliateAccountIdentifier": "291d5729-0b91-4001-95df-2bec7a6e9a01",
"affiliateAccountIdentifierType": "INTERNAL",
"displayCurrency": "USD",
"traceId": "trace-1",
"redirectUrl": "/thank-you",
"sourceUrl": "https://www.travel.com",
"contractList": [
{
"identifier": "191d5729-0b90-4000-8298-72431beb1701",
"supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401",
"supplierIdentifierType": "EXTERNAL",
"contractItemList": [
{
"user": {
"userIdentifier": "191d5729-0b90-4000-8596-ed18f9876801",
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"telephone": "+1 212 555 1212",
},
"nameInEnglish": "Deluxe King",
"descriptionInEnglish": "This is the best deluxe king that money can buy.",
"price": {
"amount": 100,
"currency": "USD"
},
"itinerary": {
"startDate": "2024-12-24T00:00:00.000Z",
"endDate": "2024-12-25T00:00:00.000Z",
"adults": 2
},
"pricingType": "PER_STAY",
"type": "LODGING",
"payable": "PREPAY",
"policy": {
"refundable": true
},
"externalIdentifier": "room-type-1",
"dailyRateList": [
{
"date": "2024-12-24",
"price": {
"amount": 100,
"currency": "USD"
}
}
],
"beneficiaryList": [
{
"identifier": "account-0",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.015
},
"type": "PLATFORM_FEE"
},
{
"identifier": "account-1",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.0985
},
"type": "COMMISSION"
},
{
"identifier": "account-2",
"identifierType": "INTERNAL",
"amountDue": {
"type": "PERCENTAGE",
"percent": 0.8865
},
"type": "SALE"
}
]
}
]
}
]
}

解释:

我们不会在这里解释每个数据点,因为它们已经在 API 文档中介绍过了。

  • 行:2 - 7负责预订的用户。预订者分为两种类型:
    • 游客。
    • 旅行社。
  • 行:8 - 9是用于预订的 TripPay 账户。它可以:
    • 您的 TripPay 集成商帐户。
    • 如果您运营联属网络,它可以成为您的联属网络。
  • 使用traceId将多个供应商的多个预订分组。这样您就可以取消团体预订。
  • redirectUrl让 TripPay 知道付款完成后要重定向到哪个页面。
  • sourceUrl是进行预订的网站/应用程序。

contractList数组包含旅行者想要从多个供应商处购买的商品。每个商品包含:

  • identifier是您生成的有效 UUID。
  • 您想要从其预订库存的供应商。
  • 您希望从该供应商处预订的库存。这些都在嵌套数组中指定contractItemList
  • 下的每个条目contractItemList包含:
    • 来宾用户这是即将到达现场的用户。
    • 英文名库存的英文名称。
    • 英文描述用英语对库存进行更详细的描述。
    • 价格商品的价格。
    • 行程何时应该预订此项。
    • 定价类型价格是如何计算的。
    • 库存类型这是什么类型的库存。
    • 应付旅行者应在何时被收费。我们目前仅支持即时付款选项。
    • 政策包括取消政策规则。
    • 每日费率表如果预订的是房间,您可以选择包含客人每晚入住该房间的费用。
    • 受益人包括应向哪个 TripPay 账户分配该项目价格的多少金额。支持固定/百分比金额。

:::注意 在上面的 JSON 示例中,我们有 3 个受益人:

  • 1.5%分配给促成预订的平台。例如 Wink
  • 9.85% 分配给关联公司作为佣金。例如金·卡戴珊
  • 88.65%分配给了房间预订的供应商。例如希尔顿

当 TripPay 回复一份应付合同时,您会注意到它注入了自己的 4.0% 的受益人。 :::

当 TripPay 响应您的请求时,它将看起来像这样:

[
{
"id": "contract-1",
"traceId": "trace-1",
"supplierContractIdentifier": "191d5729-0b90-4000-8298-72431beb1701",
"supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401",
"supplierName": "Hilton",
"totalPrice": {
"amount": 100,
"currency": "USD"
},
"totalDisplayPrice": {
"amount": 100,
"currency": "USD"
},
"totalSupplierPrice": {
"amount": 100,
"currency": "USD"
},
"totalInternalPrice": {
"amount": 100,
"currency": "USD"
},
"totalCapturePrice": {
"amount": 100,
"currency": "USD"
}
}
]

保存id在第 3 行。您将使用它来注入 TripPay Web 组件。

:::注意 请确保您已预先加载我们的样式和 JavaScript。 :::

此时,您已准备好嵌入Payment Web Component到您的网站并向用户展示。

<trip-pay id="contract-1"></trip-pay>

就集成而言,这就是您需要做的全部。从现在开始,所有繁重的工作都由 TripPay 完成。