Integracja z TripPay
Ten artykuł zawiera kompleksowy przykład integracji z TripPay.
Zalecamy, abyś wcześniej zapoznał się z:
- Płatności > Mapowanie.
- Płatności > Integracja.
- Payment Web Component.
- Payment API. Przeczytaj sekcję o
Create payable contracts
Oto kroki, aby pomyślnie użyć TripPay do zapłaty za rezerwację:
- Upewnij się, że beneficjenci, których wymieniasz w kontrakcie rezerwacyjnym, zostali zmapowani.
- Pozwól podróżnemu wybrać inwentarz, który chce zarezerwować i przygotuj go do płatności.
- Utwórz
payable contractz TripPay, który zawiera elementy do zarezerwowania. - Pozwól podróżnemu zapłacić za pomocą TripPay Web Component.
Zakładamy, że ukończyłeś już Krok 1 i Krok 2 i jesteś gotowy, aby poinformować TripPay o rezerwacji.
Utwórz payable contract
Dział zatytułowany „Utwórz payable contract”Żądanie
Dział zatytułowany „Żądanie”Oto przykładowe żądanie JSON, które zawiera wszystko, co potrzebne do utworzenia pierwszego payable contract.
{ "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" } ] } ] } ]}Wyjaśnienie:
Nie będziemy tłumaczyć każdego punktu danych, ponieważ są one już omówione w dokumentacji API.
- Linie: 2 - 7 to użytkownik odpowiedzialny za rezerwację. Istnieją dwa typy rezerwujących:
- Podróżny.
- Agent turystyczny.
- Linie: 8 - 9 to konto TripPay obsługujące rezerwację. Może to być:
- Twoje konto integratora TripPay.
- Jeśli prowadzisz sieć afiliacyjną, może to być Twój afiliant.
- Użyj
traceId, aby grupować wiele rezerwacji u różnych dostawców. Dzięki temu możesz anulować rezerwację grupową. redirectUrlinformuje TripPay, na którą stronę przekierować po zakończeniu płatności.sourceUrlto strona / aplikacja, na której dokonano rezerwacji.
Tablica contractList zawiera element(y), które podróżny chce zakupić od wielu dostawców. Każdy element zawiera:
identifierto ważny UUID, który generujesz.- Dostawcę, od którego chcesz zarezerwować inwentarz.
- Inwentarz, który chcesz zarezerwować u tego dostawcy. Wszystko to jest określone w zagnieżdżonej tablicy
contractItemList. - Każdy wpis w
contractItemListzawiera:- Użytkownik gościa To użytkownik, który pojawi się na miejscu.
- Nazwa w języku angielskim Nazwa inwentarza w języku angielskim.
- Opis w języku angielskim Dłuższy opis inwentarza w języku angielskim.
- Cena Cena elementu.
- Plan podróży Kiedy ten element powinien zostać zarezerwowany.
- Typ wyceny Jak obliczono cenę.
- Typ inwentarza Jaki to typ inwentarza.
- Płatność Kiedy podróżny powinien zostać obciążony. Obecnie obsługujemy tylko opcje natychmiastowej płatności.
- Polityka Zawiera zasady anulowania.
- Lista stawek dziennych Jeśli rezerwowany element to pokój, możesz dołączyć koszt pokoju za każdą noc pobytu gościa.
- Beneficjenci Zawiera, które konto(y) TripPay powinny otrzymać jaką część ceny elementu. Obsługiwane są kwoty stałe / procentowe.
Odpowiedź
Dział zatytułowany „Odpowiedź”Gdy TripPay odpowie na Twoje żądanie, będzie to wyglądać mniej więcej tak:
[ { "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" } }]Zapisz id z linii 3. Użyjesz go do wstrzyknięcia do TripPay web component.
Osadź TripPay
Dział zatytułowany „Osadź TripPay”W tym momencie jesteś gotowy, aby osadzić Payment Web Component na swojej stronie i pokazać go użytkownikowi.
<trip-pay id="contract-1"></trip-pay>Jeśli chodzi o integrację, to wszystko, co musisz zrobić. Cała ciężka praca jest wykonywana przez TripPay od tego momentu.