Integrarea cu TripPay
Acest articol conține un exemplu complet de integrare cu TripPay.
Se recomandă să fi citit deja:
- Payment > Mapping.
- Payment > Integration.
- Payment Web Component.
- Payment API. Citește secțiunea despre
Create payable contracts
Iată pașii pentru a folosi cu succes TripPay pentru plata unei rezervări:
- Asigură-te că beneficiarii menționați în contractul de rezervare au fost mapați.
- Lasă călătorul să aleagă inventarul pe care dorește să îl rezerve și pregătește-l pentru plată.
- Creează un
contract plătibilcu TripPay care să conțină articolele ce urmează a fi rezervate. - 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.
Creează contract plătibil
Section titled “Creează contract plătibil”Cerere
Section titled “Cerere”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", }, "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", "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
traceIdpentru a grupa mai multe rezervări de la mai mulți furnizori. Astfel poți anula o rezervare de grup. redirectUrlinformează TripPay către ce pagină să redirecționeze după finalizarea plății.sourceUrleste 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:
identifiereste 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
contractItemListconț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.
Răspuns
Section titled “Răspuns”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.
Încorporează TripPay
Section titled “Încorporează 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.