İçeriğe geç

TripPay ile Entegrasyon

Bu makale, TripPay ile nasıl uçtan uca entegre olunacağını gösteren bir örnek içermektedir.

Öncelikle aşağıdakileri okumanız önerilir:

TripPay’i kullanarak bir rezervasyonun ödemesini başarıyla yapmak için adımlar şunlardır:

  1. Rezervasyon sözleşmesinde belirttiğiniz yararlanıcıların eşlendiğinden emin olun.
  2. Seyahatçinin rezervasyon yapmak istediği envanteri seçmesine izin verin ve ödemeye hazır hale getirin.
  3. Rezervasyon yapılacak öğeleri içeren bir ödenecek sözleşmeyi TripPay ile oluşturun.
  4. Seyahatçinin TripPay Web Bileşeni’ni kullanarak ödeme yapmasını sağlayın.

Adım 1 ve Adım 2’yi tamamladığınızı ve TripPay’e rezervasyon hakkında bilgi vermeye hazır olduğunuzu varsayıyoruz.

İlk ödenecek sözleşmenizi oluşturmak için ihtiyacınız olan her şeyi içeren bir JSON örnek isteği aşağıdadır.

{
"user": {
"userIdentifier": "191d5729-0b90-4000-85df-1bea7a6e9a01",
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]"
},
"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",
"email": "[email protected]",
"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"
}
]
}
]
}
]
}

Açıklama:

Buradaki her veri noktasını açıklamayacağız çünkü API dokümanlarında zaten detaylıca ele alınmıştır.

  • Satırlar: 2 - 7 rezervasyon için sorumlu kullanıcıdır. İki tür rezervasyon yapan vardır:
    • Seyahatçi.
    • Seyahat acentesi.
  • Satırlar: 8 - 9 rezervasyonu kolaylaştıran TripPay hesabıdır. Bu:
    • Sizin TripPay entegratör hesabınız olabilir.
    • Bir bağlı kuruluş ağı işletiyorsanız, bağlı kuruluşunuz olabilir.
  • Birden fazla tedarikçi arasında birden fazla rezervasyonu gruplayabilmek için traceId kullanın. Böylece grup rezervasyonunu iptal edebilirsiniz.
  • redirectUrl ödeme tamamlandıktan sonra TripPay’in yönlendireceği sayfayı belirtir.
  • sourceUrl rezervasyonun yapıldığı site / uygulamadır.

contractList dizisi, seyahatçinin birden fazla tedarikçiden satın almak istediği öğeleri içerir. Her öğe şunları içerir:

  • identifier sizin oluşturduğunuz geçerli bir UUID’dir.
  • Envanteri rezervasyon yapmak istediğiniz tedarikçi.
  • O tedarikçiden rezervasyon yapmak istediğiniz envanter. Bunlar iç içe contractItemList dizisinde belirtilmiştir.
  • contractItemList altındaki her giriş şunları içerir:
    • Misafir kullanıcı Tesislere varacak kullanıcıdır.
    • İngilizce isim Envanterin İngilizce dilindeki adı.
    • İngilizce açıklama Envanterin İngilizce dilindeki daha uzun açıklaması.
    • Fiyat Öğenin fiyatı.
    • Güzergah Bu öğenin ne zaman rezerve edileceği.
    • Fiyatlandırma türü Fiyatın nasıl hesaplandığı.
    • Envanter türü Bu envanterin türü.
    • Ödenecek Seyahatçiden ne zaman ücret alınacağı. Şu anda sadece anında ödeme seçeneklerini destekliyoruz.
    • Politika İptal politikası kurallarını dahil edin.
    • Günlük fiyat listesi Rezervasyon yapılan öğe bir oda ise, misafirin kaldığı her gece için o odanın fiyatını dahil edebilirsiniz.
    • Yararlanıcılar Hangi TripPay hesabına öğe fiyatının ne kadarının tahsis edileceğini belirtin. Sabit / Yüzde tutarlar desteklenir.

TripPay isteğinize yanıt verdiğinde şöyle görünecektir:

[
{
"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"
}
}
]
  1. satırdaki id değerini kaydedin. Bunu TripPay web bileşenine enjekte etmek için kullanacaksınız.

Bu noktada, Payment Web Component’i web sitenize gömmeye ve kullanıcıya göstermeye hazırsınız.

<trip-pay id="contract-1"></trip-pay>

Entegrasyon açısından yapmanız gereken tek şey budur. Geri kalan tüm ağır işler TripPay tarafından yapılacaktır.