Skip to content

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

Тази статия съдържа пример от край до край за това как да се интегрирате с TripPay.

Препоръчително е вече да сте прочели:

Ето стъпките за успешно използване на TripPay за плащане на резервация:

  1. Уверете се, че бенефициентите, които споменавате в договора за резервация, са картографирани.
  2. Позволете на пътешественика да избере инвентара, който иска да резервира, и го подгответе за плащане.
  3. Създайте платим договор с 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 оттук нататък.