Salta ai contenuti

Integrazione con TripPay

Questo articolo contiene un esempio end-to-end di come integrare TripPay.

Si consiglia di aver già letto:

Ecco i passaggi per utilizzare con successo TripPay per pagare una prenotazione:

  1. Assicurati che i beneficiari menzionati nel contratto di prenotazione siano stati mappati.
  2. Lascia che il viaggiatore scelga l’inventario che desidera prenotare e preparalo al pagamento.
  3. Crea un payable contract con TripPay che contenga gli articoli da prenotare.
  4. Lascia che il viaggiatore paghi utilizzando il TripPay Web Component.

Supponiamo che tu abbia già completato Step 1 e Step 2 e sia pronto a comunicare a TripPay la prenotazione.

Ecco un esempio di richiesta JSON che include tutto ciò di cui hai bisogno per creare il tuo primo 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"
}
]
}
]
}
]
}

Spiegazione:

Non spiegheremo ogni singolo dato qui poiché sono già coperti nella documentazione API.

  • Linee: 2 - 7 rappresentano l’utente responsabile della prenotazione. Ci sono due tipi di prenotatori:
    • Viaggiatore.
    • Agenzia di viaggi.
  • Linee: 8 - 9 è l’account TripPay che facilita la prenotazione. Può essere:
    • Il tuo account integratore TripPay.
    • Se gestisci una rete di affiliati, può essere il tuo affiliato.
  • Usa un traceId per raggruppare più prenotazioni tra più fornitori. In questo modo puoi annullare una prenotazione di gruppo.
  • redirectUrl indica a TripPay quale pagina reindirizzare dopo che il pagamento è completato.
  • sourceUrl è il sito/app su cui è avvenuta la prenotazione.

L’array contractList contiene l’articolo o gli articoli che il viaggiatore vuole acquistare da più fornitori. Ogni articolo contiene:

  • L’identifier è un UUID valido che generi tu.
  • Il fornitore da cui vuoi prenotare l’inventario.
  • L’inventario che vuoi prenotare da quel fornitore. Questi sono tutti specificati nell’array annidato contractItemList.
  • Ogni voce sotto contractItemList contiene:
    • Utente ospite Questo è l’utente che arriverà presso la struttura.
    • Nome in inglese Il nome dell’inventario nella lingua inglese.
    • Descrizione in inglese Una descrizione più lunga dell’inventario in lingua inglese.
    • Prezzo Il prezzo dell’articolo.
    • Itinerario Quando questo articolo deve essere prenotato.
    • Tipo di prezzo Come è stato calcolato il prezzo.
    • Tipo di inventario Che tipo di inventario è.
    • Payable Quando il viaggiatore deve essere addebitato. Attualmente supportiamo solo opzioni di pagamento immediato.
    • Policy Includi le regole della politica di cancellazione.
    • Lista tariffe giornaliere Se l’articolo prenotato è una camera, puoi scegliere di includere quanto costa quella camera per ogni notte di permanenza dell’ospite.
    • Beneficiari Includi quali account TripPay dovrebbero ricevere quale importo del prezzo dell’articolo. Sono supportati importi fissi/percentuali.

Quando TripPay risponde alla tua richiesta, sarà simile a questo:

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

Salva l’id alla linea 3. Lo userai per inserirlo nel TripPay web component.

A questo punto, sei pronto per integrare il Payment Web Component nel tuo sito web e mostrarlo all’utente.

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

Per quanto riguarda l’integrazione, questo è tutto ciò che devi fare. Tutto il lavoro pesante sarà gestito da TripPay da qui in avanti.