Перейти до вмісту

Інтеграція з TripPay

Ця стаття містить покроковий приклад того, як інтегруватися з TripPay.

Рекомендується, щоб ви вже прочитали:

Ось кроки для успішного використання TripPay для оплати бронювання:

  1. Переконайтеся, що бенефіціари, яких ви вказали в контракті бронювання, були відображені.
  2. Дозвольте мандрівнику вибрати інвентар, який він хоче забронювати, і підготуйте його до оплати.
  3. Створіть payable contract з TripPay, який містить елементи для бронювання.
  4. Дозвольте мандрівнику оплатити за допомогою TripPay Web Component.

Припускаємо, що ви вже виконали Крок 1 і Крок 2 і готові повідомити TripPay про бронювання.

Створення платіжного контракту

Section titled “Створення платіжного контракту”

Ось приклад 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 мають отримати яку частку ціни елемента. Підтримуються фіксовані та відсоткові суми.

Коли 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.

На цьому етапі ви готові вбудувати Payment Web Component у ваш вебсайт і показати його користувачу.

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

Що стосується інтеграції, це все, що вам потрібно зробити. Вся складна робота далі виконується TripPay.