Sari la conținut

Integrarea cu TripPay

Acest articol conține un exemplu complet de integrare cu TripPay.

Se recomandă să fi citit deja:

Iată pașii pentru a folosi cu succes TripPay pentru plata unei rezervări:

  1. Asigură-te că beneficiarii menționați în contractul de rezervare au fost mapați.
  2. Lasă călătorul să aleagă inventarul pe care dorește să îl rezerve și pregătește-l pentru plată.
  3. Creează un contract plătibil cu TripPay care să conțină articolele ce urmează a fi rezervate.
  4. Lasă călătorul să plătească folosind TripPay Web Component.

Presupunem că ai finalizat deja Pasul 1 și Pasul 2 și ești gata să informezi TripPay despre rezervare.

Iată un exemplu JSON de cerere care include tot ce ai nevoie pentru a crea primul tău contract plătibil.

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

Explicație:

Nu vom explica fiecare punct de date aici deoarece sunt deja acoperite în documentația API.

  • Liniile: 2 - 7 reprezintă utilizatorul responsabil de rezervare. Există două tipuri de rezervatori:
    • Călător.
    • Agent de turism.
  • Liniile: 8 - 9 reprezintă contul TripPay care facilitează rezervarea. Poate fi:
    • Contul tău de integrator TripPay.
    • Dacă administrezi o rețea de afiliați, poate fi afiliatul tău.
  • Folosește un traceId pentru a grupa mai multe rezervări de la mai mulți furnizori. Astfel poți anula o rezervare de grup.
  • redirectUrl informează TripPay către ce pagină să redirecționeze după finalizarea plății.
  • sourceUrl este site-ul / aplicația pe care a avut loc rezervarea.

Array-ul contractList conține articolul/articolele pe care călătorul dorește să le achiziționeze de la mai mulți furnizori. Fiecare articol conține:

  • identifier este un UUID valid pe care îl generezi tu.
  • Furnizorul de la care dorești să rezervi inventarul.
  • Inventarul pe care dorești să îl rezervi de la acel furnizor. Acestea sunt specificate în array-ul imbricat contractItemList.
  • Fiecare intrare din contractItemList conține:
    • Utilizator oaspete Acesta este utilizatorul care va sosi la locație.
    • Numele în engleză Numele inventarului în limba engleză.
    • Descrierea în engleză O descriere mai detaliată a inventarului în limba engleză.
    • Prețul Prețul articolului.
    • Itinerariu Perioada pentru care trebuie făcută rezervarea.
    • Tipul de tarifare Modul în care a fost calculat prețul.
    • Tipul inventarului Ce tip de inventar este.
    • Plătibil Când trebuie să fie taxat călătorul. În prezent suportăm doar opțiuni de plată imediată.
    • Politica Include regulile politicii de anulare.
    • Lista tarifelor zilnice Dacă articolul rezervat este o cameră, poți include cât costă acea cameră pentru fiecare noapte de ședere.
    • Beneficiari Include ce cont(uri) TripPay ar trebui să primească ce sumă/sume din prețul articolului. Sunt suportate sume fixe / procentuale.

Când TripPay răspunde la cererea ta, va arăta cam așa:

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

Salvează id de pe linia 3. Îl vei folosi pentru a-l injecta în componenta web TripPay.

În acest moment, ești gata să încorporezi Payment Web Component în site-ul tău și să îl afișezi utilizatorului.

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

În ceea ce privește integrarea, asta este tot ce trebuie să faci. Toată munca grea este realizată de TripPay de aici înainte.