Saltar al contingut

Integració amb TripPay

Aquest article conté un exemple complet de com integrar-se amb TripPay.

Es recomana que ja hagis llegit:

Aquí tens els passos per utilitzar TripPay amb èxit per pagar una reserva:

  1. Assegura’t que els beneficiaris que menciones en el contracte de reserva estiguin mapejats.
  2. Deixa que el viatger triï l’inventari que vol reservar i que es prepari per pagar.
  3. Crea un contracte pagable amb TripPay que contingui els articles a reservar.
  4. Deixa que el viatger pagui utilitzant el Payment Web Component de TripPay.

Suposem que ja has completat el Pas 1 i el Pas 2 i estàs preparat per informar TripPay sobre la reserva.

Aquí tens un exemple JSON de sol·licitud que inclou tot el que necessites per crear el teu primer contracte pagable.

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

Explicació:

No explicarem cada punt de dades aquí ja que ja estan coberts a la documentació de l’API.

  • Línies: 2 - 7 és l’usuari responsable de la reserva. Hi ha dos tipus de reservadors:
    • Viatger.
    • Agent de viatges.
  • Línies: 8 - 9 és el compte TripPay que facilita la reserva. Pot ser:
    • El teu compte integrador de TripPay.
    • Si gestiones una xarxa d’afiliats, pot ser el teu afiliat.
  • Utilitza un traceId per agrupar múltiples reserves de diversos proveïdors. Així pots cancel·lar una reserva grupal.
  • redirectUrl indica a TripPay a quina pàgina redirigir després que el pagament s’hagi completat.
  • sourceUrl és el lloc web o app on es va fer la reserva.

L’array contractList conté l’article o articles que el viatger vol comprar de diversos proveïdors. Cada article conté:

  • L’identifier és un UUID vàlid que generes.
  • El proveïdor del qual vols reservar inventari.
  • L’inventari que vols reservar d’aquest proveïdor. Tot això està especificat a l’array anidat contractItemList.
  • Cada entrada dins contractItemList conté:
    • Usuari convidat Aquest és l’usuari que arribarà a les instal·lacions.
    • Nom en anglès El nom de l’inventari en anglès.
    • Descripció en anglès Una descripció més llarga de l’inventari en anglès.
    • Preu El preu de l’article.
    • Itinerari Quan s’ha de reservar aquest article.
    • Tipus de preu Com s’ha calculat el preu.
    • Tipus d’inventari Quin tipus d’inventari és.
    • Pagable Quan s’ha de cobrar al viatger. Actualment només suportem opcions de pagament immediat.
    • Política Inclou les regles de la política de cancel·lació.
    • Llista de tarifes diàries Si l’article reservat és una habitació, pots incloure quant costa aquesta habitació per cada nit d’estada.
    • Beneficiaris Inclou quins comptes TripPay han de rebre quina quantitat del preu de l’article. S’admeten quantitats fixes o percentatges.

Quan TripPay respon a la teva sol·licitud, serà similar a això:

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

Desa l’id de la línia 3. L’utilitzaràs per injectar-lo al web component de TripPay.

Ara estàs preparat per integrar el Payment Web Component al teu lloc web i mostrar-lo a l’usuari.

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

Pel que fa a la integració, això és tot el que has de fer. Tot el treball pesat el fa TripPay a partir d’aquí.