コンテンツにスキップ

TripPayとの統合

この記事には、TripPayと統合するためのエンドツーエンドの例が含まれています。

以下を既にお読みいただくことを推奨します:

TripPayを使って予約の支払いを成功させるための手順は以下の通りです:

  1. 予約契約で指定した受益者がマッピングされていることを確認します。
  2. 旅行者に予約したい在庫を選んでもらい、支払いの準備をさせます。
  3. 予約するアイテムを含むpayable contractをTripPayで作成します。
  4. 旅行者にTripPay Web Componentを使って支払ってもらいます。

ここでは、Step 1Step 2が完了し、TripPayに予約情報を伝える準備ができていることを前提とします。

以下は、最初のpayable contractを作成するために必要なすべてを含む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 は予約の責任者であるユーザーです。予約者には2種類あります:
    • 旅行者
    • 旅行代理店
  • 行:8 - 9 は予約を仲介するTripPayアカウントです。以下のいずれかです:
    • あなたのTripPayインテグレーターアカウント
    • アフィリエイトネットワークを運営している場合は、そのアフィリエイト
  • traceIdは複数のサプライヤーにまたがる複数の予約をグループ化するために使います。これによりグループ予約をキャンセルできます。
  • redirectUrlは支払い完了後にTripPayがリダイレクトするページを指定します。
  • sourceUrlは予約が行われたサイトやアプリのURLです。

contractList配列には、旅行者が複数のサプライヤーから購入したいアイテムが含まれます。各アイテムには:

  • identifierはあなたが生成する有効なUUIDです。
  • 在庫を予約したいサプライヤー。
  • そのサプライヤーから予約したい在庫。これはネストされた配列contractItemListで指定されます。
  • contractItemListの各エントリには:
    • ゲストユーザー 宿泊施設などに到着するユーザーです。
    • 英語での名前 在庫の英語名。
    • 英語での説明 在庫の英語による詳細説明。
    • 価格 アイテムの価格。
    • 旅程 このアイテムを予約する期間。
    • 価格タイプ 価格の計算方法。
    • 在庫タイプ 在庫の種類。
    • 支払い方法 旅行者がいつ支払うか。現在は即時支払いのみ対応しています。
    • ポリシー キャンセルポリシーのルールを含めます。
    • 日別料金リスト 予約するアイテムが部屋の場合、宿泊日ごとの料金を含めることができます。
    • 受益者 どのTripPayアカウントにどの金額を割り当てるかを含めます。固定額/割合がサポートされています。

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"
}
}
]

3行目のidを保存してください。これはTripPay web componentに注入するために使います。

この時点で、Payment Web Componentをあなたのウェブサイトに埋め込み、ユーザーに表示する準備ができています。

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

統合に関しては、これで完了です。ここから先の重い処理はすべてTripPayが行います。