Интеграция с TripPay
Тази статия съдържа пример от край до край за това как да се интегрирате с TripPay.
Препоръчително е вече да сте прочели:
- Плащане > Картографиране.
- Плащане > Интеграция.
- Платежен уеб компонент.
- Платежен API. Прочетете секцията за
Създаване на платими договори
Ето стъпките за успешно използване на TripPay за плащане на резервация:
- Уверете се, че бенефициентите, които споменавате в договора за резервация, са картографирани.
- Позволете на пътешественика да избере инвентара, който иска да резервира, и го подгответе за плащане.
- Създайте
платим договорс TripPay, който съдържа артикулите за резервация. - Позволете на пътешественика да плати чрез TripPay Web Component.
Предполагаме, че вече сте завършили Стъпка 1 и Стъпка 2 и сте готови да уведомите TripPay за резервацията.
Създаване на платим договор
Section titled “Създаване на платим договор”Заявка
Section titled “Заявка”Ето пример за JSON заявка, която включва всичко необходимо за създаване на първия ви платим договор.
{ "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" } ] } ] } ]}Обяснение:
Няма да обясняваме всяка точка от данните тук, тъй като вече са описани в документацията на API.
- Редове: 2 - 7 са потребителят, отговорен за резервацията. Има два типа резерватори:
- Пътешественик.
- Туристически агент.
- Редове: 8 - 9 е TripPay акаунтът, който улеснява резервацията. Може да бъде:
- Вашият TripPay интеграторски акаунт.
- Ако управлявате афилиейт мрежа, това може да е вашият афилиейт.
- Използвайте
traceId, за да групирате множество резервации от различни доставчици. По този начин можете да анулирате групова резервация. redirectUrlуведомява TripPay към коя страница да пренасочи след завършване на плащането.sourceUrlе сайтът/приложението, на което е направена резервацията.
Масивът contractList съдържа артикула(ите), които пътешественикът иска да закупи от различни доставчици. Всеки артикул съдържа:
identifierе валиден UUID, който вие генерирате.- Доставчикът, от който искате да резервирате инвентар.
- Инвентарът, който искате да резервирате от този доставчик. Всички те са посочени в вложения масив
contractItemList. - Всяка позиция в
contractItemListсъдържа:- Потребител гост Това е потребителят, който ще пристигне на мястото.
- Име на английски Името на инвентара на английски език.
- Описание на английски По-дълго описание на инвентара на английски език.
- Цена Цената на артикула.
- Маршрут Кога трябва да бъде резервиран този артикул.
- Тип ценообразуване Как е изчислена цената.
- Тип инвентар Какъв тип инвентар е това.
- Платимо Кога трябва да бъде начислена сумата на пътешественика. В момента поддържаме само опции за незабавно плащане.
- Политика Включва правила за политика за анулация.
- Списък с дневни цени Ако артикулът, който се резервира, е стая, можете да включите колко струва тази стая за всяка нощувка.
- Бенефициенти Включва кои TripPay акаунти трябва да получат каква сума от цената на артикула. Поддържат се фиксирани и процентни суми.
Отговор
Section titled “Отговор”Когато TripPay отговори на вашата заявка, тя ще изглежда приблизително така:
[ { "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" } }]Запазете id на ред 3. Ще го използвате за вграждане в TripPay уеб компонента.
Вграждане на TripPay
Section titled “Вграждане на TripPay”В този момент сте готови да вградите Payment Web Component във вашия уебсайт и да го покажете на потребителя.
<trip-pay id="contract-1"></trip-pay>Що се отнася до интеграцията, това е всичко, което трябва да направите. Цялата тежка работа се извършва от TripPay оттук нататък.