Перейти к содержимому

Интеграция с TripPay

В этой статье содержится подробный пример интеграции с TripPay.

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

Вот шаги для успешного использования TripPay для оплаты бронирования:

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

Мы предполагаем, что вы уже завершилиStep 1 и Step 2и готовы сообщить TripPay о бронировании.

Ниже приведен пример запроса 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сайт/приложение, на котором было совершено бронирование.

ThecontractListмассив содержит товар(ы), которые путешественник хочет купить у нескольких поставщиков. Каждый товар содержит:

  • Theidentifier— это действительный сгенерированный вами 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.