Интеграция с TripPay
В этой статье содержится подробный пример интеграции с TripPay.
Рекомендуется, чтобы вы уже прочитали:
- Оплата > Картографирование.
- Оплата > Интеграция.
- Платежный веб-компонент.
- API-интерфейс для платежей.Прочитайте раздел
Create payable contracts
Вот шаги для успешного использования TripPay для оплаты бронирования:
- Убедитесь, что бенефициары, которых вы упоминаете в договоре бронирования, указаны на карте.
- Позвольте путешественнику выбрать, какие услуги он хочет забронировать, и приготовьтесь к оплате.
- Создать
payable contract
с TripPay, содержащим пункты, которые необходимо забронировать. - Позвольте путешественнику расплачиваться с помощью веб-компонента TripPay.
Мы предполагаем, что вы уже завершилиStep 1
и Step 2
и готовы сообщить TripPay о бронировании.
Создать оплачиваемый контракт
Заголовок раздела «Создать оплачиваемый контракт»Ниже приведен пример запроса 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
сайт/приложение, на котором было совершено бронирование.
ThecontractList
массив содержит товар(ы), которые путешественник хочет купить у нескольких поставщиков. Каждый товар содержит:
- The
identifier
— это действительный сгенерированный вами UUID. - Поставщик, у которого вы хотите забронировать инвентарь.
- Инвентарь, который вы хотите забронировать у этого поставщика. Все они указаны во вложенном массиве
contractItemList
. - Каждая запись под
contractItemList
содержит:- Гость-пользовательЭто пользователь, который прибудет на объект.
- Имя на английском языкеНаименование инвентаря на английском языке.
- Описание на английском языкеБолее подробное описание инвентаря на английском языке.
- ЦенаЦена товара.
- МаршрутКогда следует бронировать этот товар.
- Тип ценообразованияКак рассчитывалась цена.
- Тип инвентаряЧто это за тип инвентаря?
- Подлежащий оплатеКогда с путешественника следует взимать плату.В настоящее время мы поддерживаем только варианты немедленной оплаты.
- ПолитикаВключите правила отмены бронирования.
- Список ежедневных ставокЕсли бронируется номер, вы можете указать стоимость каждой ночи проживания гостя в этом номере.
- БенефициарыУкажите, на какой счет(а) TripPay следует начислить ту или иную сумму от стоимости товара.Поддерживаются фиксированные/процентные суммы.
Когда 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
Заголовок раздела «Встроить TripPay»На этом этапе вы готовы встроитьPayment Web Component
на свой сайт и покажите его пользователю.
<trip-pay id="contract-1"></trip-pay>
Что касается интеграции, то это все, что вам нужно сделать. Всю тяжелую работу с этого момента выполняет TripPay.