Przejdź do głównej zawartości

Integracja z TripPay

Ten artykuł zawiera kompleksowy przykład integracji z TripPay.

Zalecamy, abyś wcześniej zapoznał się z:

Oto kroki, aby pomyślnie użyć TripPay do zapłaty za rezerwację:

  1. Upewnij się, że beneficjenci, których wymieniasz w kontrakcie rezerwacyjnym, zostali zmapowani.
  2. Pozwól podróżnemu wybrać inwentarz, który chce zarezerwować i przygotuj go do płatności.
  3. Utwórz payable contract z TripPay, który zawiera elementy do zarezerwowania.
  4. Pozwól podróżnemu zapłacić za pomocą TripPay Web Component.

Zakładamy, że ukończyłeś już Krok 1 i Krok 2 i jesteś gotowy, aby poinformować TripPay o rezerwacji.

Oto przykładowe żądanie JSON, które zawiera wszystko, co potrzebne do utworzenia pierwszego payable contract.

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

Wyjaśnienie:

Nie będziemy tłumaczyć każdego punktu danych, ponieważ są one już omówione w dokumentacji API.

  • Linie: 2 - 7 to użytkownik odpowiedzialny za rezerwację. Istnieją dwa typy rezerwujących:
    • Podróżny.
    • Agent turystyczny.
  • Linie: 8 - 9 to konto TripPay obsługujące rezerwację. Może to być:
    • Twoje konto integratora TripPay.
    • Jeśli prowadzisz sieć afiliacyjną, może to być Twój afiliant.
  • Użyj traceId, aby grupować wiele rezerwacji u różnych dostawców. Dzięki temu możesz anulować rezerwację grupową.
  • redirectUrl informuje TripPay, na którą stronę przekierować po zakończeniu płatności.
  • sourceUrl to strona / aplikacja, na której dokonano rezerwacji.

Tablica contractList zawiera element(y), które podróżny chce zakupić od wielu dostawców. Każdy element zawiera:

  • identifier to ważny UUID, który generujesz.
  • Dostawcę, od którego chcesz zarezerwować inwentarz.
  • Inwentarz, który chcesz zarezerwować u tego dostawcy. Wszystko to jest określone w zagnieżdżonej tablicy contractItemList.
  • Każdy wpis w contractItemList zawiera:
    • Użytkownik gościa To użytkownik, który pojawi się na miejscu.
    • Nazwa w języku angielskim Nazwa inwentarza w języku angielskim.
    • Opis w języku angielskim Dłuższy opis inwentarza w języku angielskim.
    • Cena Cena elementu.
    • Plan podróży Kiedy ten element powinien zostać zarezerwowany.
    • Typ wyceny Jak obliczono cenę.
    • Typ inwentarza Jaki to typ inwentarza.
    • Płatność Kiedy podróżny powinien zostać obciążony. Obecnie obsługujemy tylko opcje natychmiastowej płatności.
    • Polityka Zawiera zasady anulowania.
    • Lista stawek dziennych Jeśli rezerwowany element to pokój, możesz dołączyć koszt pokoju za każdą noc pobytu gościa.
    • Beneficjenci Zawiera, które konto(y) TripPay powinny otrzymać jaką część ceny elementu. Obsługiwane są kwoty stałe / procentowe.

Gdy TripPay odpowie na Twoje żądanie, będzie to wyglądać mniej więcej tak:

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

Zapisz id z linii 3. Użyjesz go do wstrzyknięcia do TripPay web component.

W tym momencie jesteś gotowy, aby osadzić Payment Web Component na swojej stronie i pokazać go użytkownikowi.

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

Jeśli chodzi o integrację, to wszystko, co musisz zrobić. Cała ciężka praca jest wykonywana przez TripPay od tego momentu.