Інтеграція з TripPay
Ця стаття містить покроковий приклад того, як інтегруватися з TripPay.
Рекомендується, щоб ви вже прочитали:
- Payment > Mapping.
- Payment > Integration.
- Payment Web Component.
- Payment API. Прочитайте розділ про
Create payable contracts
Ось кроки для успішного використання TripPay для оплати бронювання:
- Переконайтеся, що бенефіціари, яких ви вказали в контракті бронювання, були відображені.
- Дозвольте мандрівнику вибрати інвентар, який він хоче забронювати, і підготуйте його до оплати.
- Створіть
payable contractз TripPay, який містить елементи для бронювання. - Дозвольте мандрівнику оплатити за допомогою TripPay Web Component.
Припускаємо, що ви вже виконали Крок 1 і Крок 2 і готові повідомити TripPay про бронювання.
Створення платіжного контракту
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.