Ga naar inhoud

Integreren met TripPay

Dit artikel bevat een end-to-end voorbeeld van hoe je kunt integreren met TripPay.

Het is aan te raden dat je al hebt gelezen:

Hier zijn de stappen om TripPay succesvol te gebruiken voor het betalen van een boeking:

  1. Zorg dat de begunstigden die je noemt in het boekingscontract zijn gemapt.
  2. Laat de reiziger de inventaris kiezen die hij wil boeken en zich klaarmaken om te betalen.
  3. Maak een payable contract aan bij TripPay dat de te boeken items bevat.
  4. Laat de reiziger betalen met de TripPay Web Component.

We gaan ervan uit dat je Stap 1 en Stap 2 al hebt voltooid en klaar bent om TripPay te informeren over de boeking.

Hier is een JSON voorbeeldverzoek dat alles bevat wat je nodig hebt om je eerste payable contract aan te maken.

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

Uitleg:

We zullen hier niet elk datapunt uitleggen omdat deze al in de API-documentatie behandeld worden.

  • Regels: 2 - 7 is de gebruiker die verantwoordelijk is voor de boeking. Er zijn twee soorten boekers:
    • Reiziger.
    • Reisagent.
  • Regels: 8 - 9 is de TripPay-account die de boeking faciliteert. Dit kan zijn:
    • Je eigen TripPay integrator-account.
    • Als je een affiliate netwerk runt, kan dit je affiliate zijn.
  • Gebruik een traceId om meerdere boekingen over meerdere leveranciers te groeperen. Zo kun je een groepsboeking annuleren.
  • redirectUrl laat TripPay weten naar welke pagina moet worden doorgestuurd nadat de betaling voltooid is.
  • sourceUrl is de site/app waarop de boeking heeft plaatsgevonden.

De array contractList bevat het item/de items die de reiziger wil kopen van meerdere leveranciers. Elk item bevat:

  • De identifier is een geldige UUID die je genereert.
  • De leverancier waarvan je inventaris wilt boeken.
  • De inventaris die je van die leverancier wilt boeken. Deze zijn allemaal gespecificeerd in de geneste array contractItemList.
  • Elke invoer onder contractItemList bevat:
    • Gastgebruiker Dit is de gebruiker die op de locatie zal aankomen.
    • Naam in het Engels De naam van de inventaris in het Engels.
    • Beschrijving in het Engels Een langere beschrijving van de inventaris in het Engels.
    • Prijs De prijs van het item.
    • Reisroute Wanneer dit item geboekt moet worden.
    • Prijsbepalingstype Hoe de prijs is berekend.
    • Type inventaris Wat voor soort inventaris dit is.
    • Te betalen Wanneer de reiziger in rekening wordt gebracht. We ondersteunen momenteel alleen directe betalingsopties.
    • Beleid Neem annuleringsvoorwaarden op.
    • Dagelijkse tarieflijst Als het geboekte item een kamer is, kun je opnemen hoeveel die kamer per nacht kost.
    • Begunstigden Geef aan welke TripPay-account(s) welk bedrag van de prijs van het item toegewezen moeten krijgen. Vaste / procentuele bedragen worden ondersteund.

Wanneer TripPay reageert op je verzoek, ziet het er ongeveer zo uit:

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

Bewaar de id op regel 3. Je gebruikt deze om in de TripPay web component te injecteren.

Op dit punt ben je klaar om de Payment Web Component in je website te embedden en aan de gebruiker te tonen.

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

Wat betreft de integratie, dat is alles wat je hoeft te doen. Al het zware werk wordt vanaf hier door TripPay gedaan.