Farklı Ödeme Türleri Belirleyin

Actions Center platformu, ödeme almak için çeşitli yapılandırmaları destekler. Ödemeleri Etkinleştirme Kılavuzu, tüm ödeme entegrasyonlarında yaygın olarak kullanılan entegrasyonun, aşağıdakiler de dahil olmak üzere çeşitli yönlerini kapsar:

  1. Feed'ler tokenization_parameter bilgilerini içerecek şekilde yapılandırılıyor
  2. Rezervasyon sunucusu payment_method_token nesneyi kabul edecek şekilde güncelleniyor
  3. Kullanıcı, Actions Center, iş ortağı / satıcı ve ödeme işleyici arasında paylaşılan bilgilere genel bakış.

Bu kılavuzda, satıcılarınız ve hizmetleriniz için geçerli olan farklı ödeme yapılandırma türlerinden hangilerinin geçerli olduğunu belirtmek amacıyla feed'lerinizi nasıl yapılandıracağınızı daha ayrıntılı olarak ele alacağız.

  1. Ödeme Yok / Girişte Ödeme
  2. Eksiksiz Ön Ödeme
  3. Rezervasyonu Kullanmama Ücreti / İptal Ücreti
  4. Ödeme

Ödemelerle ilgili tüm kullanım alanları, ödeme yok / varışta ödeme kullanım alanının uzantılarıdır (ödeme yapılandırması gerektirmez). Bu nedenle, bu eğitim, ilgili yapılandırmayı açıklayarak ve diğer yapılandırmaları uzantı olarak ele alarak başlayacaktır.

Her bölüm, belirli bir ödeme yapılandırmasını kabul etmek için rezervasyon sunucusunda izlenecek alanları da kapsar.

Ödeme Yok / Girişte Ödeme

Rezervasyon sırasında ödeme gerektirmeyen hizmetler için satıcı veya hizmet düzeyinde ödeme yapılandırması gerekmez. Bununla birlikte, fiyat girilmesi zorunludur.

Bu, bir hizmetin ad, açıklama ve fiyatı içeren temel yapılandırmasıdır. Bu, ServiceFeed içindeki tek bir Hizmet mesajıdır:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    }
}

Varışta ödemeyi desteklemek için rezervasyon sunucusunda standart uygulamanın ötesinde ek yapılandırma gerekmez.

Ön Ödeme

Bu yapılandırma, hizmet tutarının rezervasyon sırasında tam olarak ödenmesi gerektiğini belirtmek için kullanılır.

Ön ödeme, hizmet düzeyinde Service öğesinin prepayment_type alanı aracılığıyla belirtilir. Bir hizmette ödeme alınmasını zorunlu kılmak için aşağıdaki örnekte gösterildiği gibi REQUIRED olarak ayarlanmalıdır. Fiyatın, varışta ödeme örneğiyle aynı şekilde belirtildiğini unutmayın. Ön ödeme türünü zorunlu olarak ayarladığımız için bu noktada bir kredi kartı tahsil edilir ve ödeme sırasında bu ücret tahsil edilebilir.

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "prepayment_type": "REQUIRED"
}

Rezervasyon Sunucusu

Ön ödemeleri kabul ederken payment_processing_parameters.unparsed_payment_method_token alanı üzerinden CreateBooking çağrısında rezervasyon sunucunuza bir ödeme jetonu iletilir. Tam olarak feed'lerdeki fiyat alanında belirtilen tutarda ücret almanız ve feed'lerde belirtilen para birimini kullanmanız gerekir. Bu ödemeler, Ödemeleri Etkinleştirme Kılavuzu'nda açıklanan akışa uygun olmalıdır.

CreateBookingResponse döndürülürken booking.payment_information alanı, ön ödemenin sağlandığını ve işlendiğini doğru şekilde yansıtacak şekilde ayarlanmalıdır.

PaymentInformation spesifikasyonu, tüm ödeme bilgisi seçenekleriyle ilgili belgelerin tamamını içerir. Ön ödemenin işlenmesiyle ilgili asgari bir örneği aşağıda bulabilirsiniz. Fiyat alanında döndürülen fiyatın istekte belirtilenle tam olarak eşleşmesi önemlidir. Ayrıca, feed'lerde veya istekte bir vergi oranı belirtilmişse bu oran da tam olarak eklenmelidir.

Ayrıca, bir işlem kimliği sağlamanız gerektiğini de unutmayın. Bu işlem kimliği en azından söz konusu satıcıyla yapılan işlemler arasında benzersiz olmalıdır. Ödeme işleyicinin size sağladığı işlem kimliği, işlem kimliği için iyi bir adaydır.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
}

Rezervasyonu Kullanmama Ücreti

Oyuncu rezervasyona katılmazsa veya iptal aralığından sonra iptal ederse kullanıcılardan rezervasyonu kullanmama ücreti alınabilir. İptal aralığı belirtilmezse varsayılan olarak zaman aralığının başlangıç zamanı kullanılır.

Rezervasyonu kullanmama ücreti belirtmek için hizmet feed'ine aşağıdaki örnekte gösterildiği gibi no_show_fee alanını eklemeniz gerekir:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 14400,
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

Yukarıdaki örnekte, iş ortağı veya satıcı randevu sahibi randevuya katılmazsa no_show_fee.fee.price_micros alanında belirtildiği gibi 25 ABD doları sabit ücret alma yetkisine sahiptir. Kullanıcı randevuyu scheduling_rules.min_advance_online_canceling alanında belirtildiği gibi önce 4 saat (14.400 saniye) içinde iptal ederse de bu ücret alınabilir.

Kullanılabilirlik düzeyinde gösterim ücretlerinin nasıl tanımlanamayacağını öğrenmek için bu bölümü inceleyin.

Rezervasyon Sunucusu

Rezervasyonu kullanmama ücreti içeren bir istek işlenirken payment_processing_parameters.unparsed_payment_method_token alanı üzerinden CreateBooking çağrısında rezervasyon sunucunuza bir ödeme jetonu iletilir. Bu jeton, ön ödeme senaryosunda olduğu gibi iletilir. Ancak jeton yalnızca kısa bir süreliğine yetkilendirildiğinden, bu jetonu daha sonra kullanmak üzere saklayabileceğiniz bir sürüme yükseltmesi için ödeme işleyicinizin ilgili API'sini çağırmanız gerekir. Bu, Ödemeleri Etkinleştirme kılavuzu bölümünde, No-No-Show Ücreti jeton akışı ile ilgili olarak açıklanmıştır.

Bir CreateBookingResponse döndürülürken aşağıdaki örnekte olduğu gibi, rezervasyonu kullanmama ücretinin durumunu düzgün bir şekilde yansıtması için booking.payment_information alanı ayarlanmalıdır.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

no_show_fee, alınabilecek ücretin fiyatını ve yapısını yansıtacak şekilde ayarlanır. Ayrıca, ön ödeme örneğinde olduğu gibi, bu mesajda da transaction_id belirtilmesi gerekir.

Ayrıca, rezervasyonu kullanmama ücreti alınırken gönderilmesi gereken gerçek zamanlı güncellemeler için CreateBookingResponse içinde ayarlanan booking_id alanının zorunlu bir alandır. Bu kimliğin rezervasyonla ilgili bilgilerle birlikte depolanması beklenir.

Gerçek Zamanlı Güncellemeler

Kullanıcı, planlanan rezervasyonuna gelmezse veya iptal süresinden sonra (ör.sizinle doğrudan iletişime geçerek) rezervasyonu iptal ederse (ör. sizinle doğrudan iletişime geçerek) rezervasyon sırasında kaydettiğiniz ödeme bilgilerini kullanarak belirtilen rezervasyonu kullanmama ücretini isteğe bağlı olarak alabilirsiniz. Rezervasyonu kullanmama ücreti aldığınızda, rezervasyonu kullanmama ücretinin alındığını belirten bir Gerçek Zamanlı Güncelleme göndermeniz gerekir.

CreateBooking tarafından oluşturulan rezervasyonlar için notification.partners.bookings.patch adresine güncelleme gönderilmelidir. Bu isteğin gövde bölümünde, durumu NO_SHOW_PENALIZED olarak ayarlanmış şekilde güncellenmiş rezervasyon yer almalıdır. Bu durum, Google'a bir ödeme alındığını bildirir.

Örneğin bir istek şu adrese gönderilebilir:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

İstek gövdesi ile:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "NO_SHOW_PENALIZED"
}

Ödeme

Depozitolar, rezervasyon koşulu olarak ilk ödemeyi almak için kullanılır. Depozitolar, rezervasyon sırasında veya daha sonra alınabilir. Ödemenin hangi şartlar altında geri ödeneceğini ve rezervasyonların online olarak ne zaman iptal edilebileceğini tanımlamanız gerekebilir.

Ödeme belirtmek için hizmet feed'ine aşağıdaki örnekte gösterildiği gibi deposit alanını eklemeniz gerekir:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 86400,
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 14400,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

Bu örnekte, min_advance_online_canceling iptal aralığını ve deposit.min_advance_cancellation_sec, depozitonun ne zaman geri ödenebileceğini tanımlar. Yukarıdaki örnekte, ödeme tutarının geri ödeme şartlarından ayrı olarak iptal süresi belirtebileceğini unutmayın. Bu durumda kullanıcı, hizmeti 24 saat öncesine (86.400 saniye) kadar online olarak iptal edebilir. Bu sayede satıcı, geciken iptaller konusunda doğrudan bilgilendirilir. Ancak kullanıcı, rezervasyondan 4 saat öncesine (14.400 saniye) kadar (iptal için sizinle veya satıcıyla iletişime geçerek) depozitosu için geri ödeme alabilir. Bu tutar, ödeme sırasında ve onay e-postasında şartlarda gösterilir.

Ödemelerin kullanılabilirlik düzeyinde nasıl tanımlanabileceğini öğrenmek için bu bölümü inceleyin.

Rezervasyon Sunucusu

Ödeme içeren bir istek işlenirken payment_processing_parameters.unparsed_payment_method_token alanı üzerinden CreateBooking çağrısındaki rezervasyon sunucunuza bir ödeme jetonu iletilir. Bu jeton, ön ödeme durumunda olduğu gibi iletilir. Rezervasyon sırasında ödeme alır veya bekletmeyi kaldırırsanız bu işlemi bu istek sırasında yapabilirsiniz.

Jeton yalnızca kısa bir süre için yetkilendirildiği için ödemeyi daha sonra almayı planlıyorsanız bu jetonu daha sonra kullanmak üzere saklayabileceğiniz bir sürüme yükseltmesi için ödeme işleyicinizin ilgili API'sini çağırmanız gerekir. Bu, ödeme jetonu akışındaki Ödemeleri Etkinleştirme kılavuzunun bölümünde açıklanmıştır.

CreateBookingResponse döndürülürken booking.payment_information alanı, aşağıdaki örnekte olduğu gibi ödemenin durumunu düzgün bir şekilde yansıtmalıdır.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 28800,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

Ödemenin, alınacak veya bekletilecek ödemenin fiyatını ve yapısını yansıtacak şekilde ayarlandığını unutmayın. Ayrıca, ön ödeme örneğinde olduğu gibi, bu mesajda da transaction_id belirtilmesi gerekir.

Gerçek Zamanlı Güncellemeler

Bir kullanıcı, ödemesini iptal etme süresinden önce rezervasyonunu iptal ederse kullanıcı kartından tahsil ettiğiniz tüm depozitoları geri ödemeniz gerekir. Yatırılan parayı geri öderken, ödemenin geri ödendiğini belirten bir Gerçek Zamanlı Güncelleme göndermeniz gerekir.

CreateBooking tarafından oluşturulan rezervasyonlar için notification.partners.bookings.patch adresine güncelleme gönderilmelidir. Bu isteğin gövde bölümünde, durumu CANCELED ve paymentInformation.prepaymentStatus alanı PREPAYMENT_REFUNDED olarak ayarlanmış şekilde güncellenmiş rezervasyon yer almalıdır. Bu e-posta, Google'a depozitonun geri ödendiğini bildirir.

Örneğin bir istek şu adrese gönderilebilir:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

İstek gövdesi ile:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "CANCELED"
    "paymentInformation": {
      "prepaymentStatus": "PREPAYMENT_REFUNDED"
    }
    
}

Kredi Kartı İste

Bir hizmet, kullanıcı kimliğinin ek doğrulaması olarak kredi kartı talep edebilir. Ancak ön ödeme ve para yatırma işlemleri için kullanılmamalı veya gösterimsiz ödeme için kullanılmamalıdır. Bu kullanım alanları gerekirse yukarıdaki adımlar kullanılarak açıkça yapılandırılmalıdır. Ayrıca kredi kartı istemenin, bu hizmet için yapılan rezervasyonlarda genellikle belirgin bir düşüşe neden olabileceğini hatırlatmak isteriz.

Ödeme sırasında kredi kartı verilmesini zorunlu kılmak için require_credit_card alanını REQUIRE_CREDIT_CARD_ALWAYS olarak ayarlamanız gerekir.

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    },
    "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

Rezervasyon Sunucusu

Kredi kartı şartı içeren bir istek işlenirken payment_processing_parameters.unparsed_payment_method_token alanı üzerinden CreateBooking çağrısındaki rezervasyon sunucunuza bir ödeme jetonu iletilir. Bu jeton, ön ödeme senaryosunda olduğu gibi iletilir. Ancak jeton yalnızca kısa bir süreliğine yetkilendirildiğinden, bu jetonu daha sonra kullanmak üzere saklayabileceğiniz bir sürüme yükseltmesi için ödeme işleyicinizin ilgili API'sini çağırmanız gerekir.

Rezervasyon sunucusu yanıtında, varışta ödeme kullanım alanı haricinde herhangi bir ek bilgi gerekmez.

Kullanılabilirlik Düzeyinde Fiyatlandırmayı Geçersiz Kılma

Yukarıdaki örneklerin tümünde, fiyat / ücret yapısı Hizmet düzeyinde belirtilmiştir. Çoğu durumda bu hizmet düzeyinde fiyatlandırma kullanılmalıdır. Ancak bazı durumlarda belirli kullanılabilirlik slotları için ödeme yapısını değiştirmek mantıklıdır. Örneğin, aşağıdaki durumlar, stok durumu düzeyinde fiyatların / ücretlerin geçersiz kılınmasıyla ele alınabilir:

  • Fiyatlar salı günleri düşürülür, cumartesi günleri artar.
  • 17:00-19:00 saatleri arasındaki müsaitlik durumu için gösterim ücreti yoktur.

Aşağıdaki tabloda, her ödeme / ücret yöntemi için hizmet düzeyi tanımını geçersiz kılmak amacıyla müsaitlik durumu feed'inde hangi alanların kullanılacağı listelenmiştir.

Ödeme Türü Ücret / Fiyat Tanımı Geçersiz kılınabilir mi?
Girişte Ödeme Service.price Merchant.payment_option referans alınarak Availability.payment_option_id üzerinden fiyat geçersiz kılınabilir
Ön Ödeme Service.price Availability.payment_option_id, Merchant.payment_option referansıyla fiyat geçersiz kılınabilir
Rezervasyon ücreti yok Service.no_show_fee Availability.no_show_fee
Ödeme Service.deposit Availability.deposit
Kredi kartı iste Service.require_credit_card Availability.require_credit_card

Fiyatı stok durumu düzeyinde geçersiz kılmak için önce satıcı düzeyinde bir ödeme seçeneği tanımlamanız gerektiğini unutmayın. Ayrıca müsaitlik düzeyinde iptal aralıkları ekleme konusunda yardım için lütfen İptal Aralıkları Ekleme kılavuzunu inceleyin.