Eşzamanlı rezervasyonlar, onaylanan veya reddedilen rezervasyonlar olarak tanımlanır gerçekleşmesidir.
Eşzamansız rezervasyonlar, satıcının web sitesinde veya daha sonra geri dönecektir.
Bir rezervasyon, düzeyi için ödeme yaparsınız. Bu aynı zamanda belirli bir satıcı ve hizmet için hem eşzamanlı hem de eşzamansız kullanılabilirlik alanları olabilir.
Uygun uygulamayı belirlemek için önce hangi kategorinin şu riskin kapsamına giriyor:
- Yalnızca eşzamanlı rezervasyonları etkinleştirme: Tüm satıcılar ve hizmetler anında onaylanır.
- Eşzamansız rezervasyonları etkinleştirme: Satıcıların ve hizmetlerin bazıları veya tümü için satıcı kılavuzu gerekir onayı.
Eşzamansız rezervasyon ölçütleri
- İşlemler Merkezi'nde eş zamansız rezervasyonda değişiklik yapılamaz desteklenir.
- Satıcılar rezervasyon işlemini iş ortağının online sistemine (ör. restoran için ev sahipliği paneli). veya kullanıcı adına bir satıcı üzerinde anlaşmaya varıp Kullanıcı rezervasyonunu reddettiğinde izin verilmez.
- Satıcının yeni rezervasyon zamanı teklifi desteklenmez. İlgili içeriği oluşturmak için kullanılan Rezervasyon isteği orijinal haliyle kabul edilmeli veya reddedilmelidir.
Yalnızca eşzamanlı rezervasyonları etkinleştirme
Standart uygulama varsayılan olarak eşzamanlı rezervasyonlara ayarlanır. Lütfen danışın: Daha fazla bilgi için Randevular'ın Uçtan Uca entegrasyon belgelerini inceleyin.
Eşzamansız rezervasyonu etkinleştirme
Satıcıların bazıları veya tümü eşzamansız rezervasyon akışı kullanıyorsa şu değişikliklerin yapılması gerekiyor:
-
Onay modu: Artık kullanılabilirlik alanlarının tüm temsilleri rezervasyonların nasıl sonuçlandığını açıklayan bir
confirmation_mode
alanı içermelidir. onaylandığına dikkat edin. Belirtin:confirmation_mode
takip etmek için:- Stok Durumu Feed'inde
confirmation_mode
, kullanılabilirlik düzeyi - Booking Server API yöntemlerinde
confirmation_mode
, slot düzeyi - Real-Time Updates API yöntemlerinde
confirmation_mode
belirtilir kullanılabilirlik düzeyinde
- Stok Durumu Feed'inde
- Rezervasyon durumu: Rezervasyonlarla ilgili tüm gösterimlerde
status
alanı rezervasyonun durumunu temsil eder. Üç kez yeni eşzamansız durum değerleri kullanıma sunuldu:PENDING_CONFIRMATION
,DECLINED_BY_MERCHANT
veFAILED
. Bu yeni durum değerlerini şu durumlarda kullanın: eşzamansız rezervasyonların işlenmesi, reddedilmesi ve hataları. - Rezervasyon güncellemeleri: Randevu alınan rezervasyonun durumuyla ilgili rezervasyonları, Rezervasyon Bildirim API'si aracılığıyla bildirilmelidir. bookings.patch yöntemini kullanabilirsiniz.
Aşağıdaki şemada, onay modunun ve rezervasyon durumunun nasıl kullanıldığı gösterilmektedir tipik bir eşzamansız rezervasyon etkileşimidir.
- Müsaitlik durumu feed'leri, her müsaitlik durumu aralığının onay modu belirtiliyor. Bu bilgileri her zaman Böylece rezervasyonun eşzamansız doğasını kullanıcılara açıklayabiliriz. erken bir aşamada belirlemenize yardımcı olur.
- Zaman
BatchAvailabilityLookup
veyaCheckAvailability
olarak adlandırdığımızda, onay modundan geçer ve tercihen aynı onay modunu geri döndü. Bu, kullanıcıya uygun mesajın gösterilmesini sağlar. - Zaman
CreateBooking
onay modunu e-postalarımızı beklenen onay modunu belirtin. Eşzamansız rezervasyon istek gönderildi, rezervasyon durumla ilgili olarak döndürüldüPENDING_MERCHANT_CONFIRMATION
- Satıcı bir rezervasyon isteğini kabul ettiğinde veya reddettiğinde, rezervasyon gerçek zamanlı güncelleme Rezervasyon Bildirim API'si aracılığıyla güncellenir. bookings.patch yöntemi kullanılmaktadır. Benzer olmayan rezervasyonları otomatik olarak reddetmek istiyorsanız ve değişiklikleri zamanında yanıtlamak için aynı gerçek zamanlı güncelleme yöntemidir.
Stok Durumu Feed'leri
Müsaitlik durumu feed'inde, her alanın eşzamanlı mı yoksa eş zamanlı mı olduğunu belirtin.
eşzamansız. Bunu yapmak için yeni confirmation_mode
cihazını ayarlayın
girin.
// Mode by which bookings for an availability slot are confirmed. enum ConfirmationMode { // The confirmation mode was not specified. // Synchronous confirmation will be assumed. CONFIRMATION_MODE_UNSPECIFIED = 0; // Bookings for this availability will be confirmed synchronously. CONFIRMATION_MODE_SYNCHRONOUS = 1; // Bookings for this availability will be confirmed asynchronously. CONFIRMATION_MODE_ASYNCHRONOUS = 2; }
Hiçbir mod etkin değilse onay modunun eşzamanlı olduğu varsayılır. belirtildiğinden, bu yöntemin kullanılması nedeniyle açıkça bir mod belirtilmesi yanlışlıkla yapılan ihmallerle ilgili karışıklığı ortadan kaldıran bir sistemdir.
Asenk.
{ "availability": [ { "merchant_id": "10001", "service_id": "1000", "spots_open": 3, "spots_total": 3, "duration_sec": 3600, "start_sec": 1535806800, "resources": { "party_size": 4 }, "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" } ] }
Sync
{ "availability": [ { "merchant_id": "10001", "service_id": "1000", "spots_open": 3, "spots_total": 3, "duration_sec": 3600, "start_sec": 1535806800, "resources": { "party_size": 4 }, "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] }
Eş Zamansız ve Senkronize
{ "availability": [ { "merchant_id": "10001", "service_id": "1000", "spots_open": 3, "spots_total": 3, "duration_sec": 3600, "start_sec": 1535806800, "resources": { "party_size": 4 }, "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" }, { "merchant_id": "10002", "service_id": "1000", "spots_open": 4, "spots_total": 4, "duration_sec": 3600, "start_sec": 1535806800, "resources": { "party_size": 2 }, "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" } ] }
Rezervasyon Sunucusu
BatchAvailabilityLookup veya CheckAvailability
BatchAvailabilityLookupResponse
(BAL)
veya
CheckAvailabilityResponse
(CA), confirmation_mode
stok durumu feed'i aracılığıyla
BatchAvailabilityLookupRequest
veya
CheckAvailabilityRequest
.
BAL-Async
{ "slot_time_availability": [ { "slot_time": { "duration_sec": "3600", "resource_ids": { "party_size": 3 }, "service_id": "1000", "start_sec": "1546458300", "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" }, "available": true } ] }
BAL Senkronizasyonu
{ "slot_time_availability": [ { "slot_time": { "duration_sec": "3600", "resource_ids": { "party_size": 3 }, "service_id": "1000", "start_sec": "1546458300", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" }, "available": true } ] }
CA-Async
{ "slot": { "duration_sec": "3600", "merchant_id": "317652", "resources": { "party_size": 3 }, "service_id": "1000", "start_sec": "1546458300", "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" }, "count_available": 1, "duration_requirement": "DO_NOT_SHOW_DURATION" }
CA Senkronizasyonu
{ "slot": { "duration_sec": "3600", "merchant_id": "317652", "resources": { "party_size": 3 }, "service_id": "1000", "start_sec": "1546458300", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" }, "count_available": 1, "duration_requirement": "DO_NOT_SHOW_DURATION" }
CreateBooking
Mevcut şu seçenekleri kullanabilirsiniz:
// Status of a booking. // // Updating booking status does not change the status of the associated payment. // Prepayment status updates should be done using the PrepaymentStatus enum. enum BookingStatus { // Not specified. BOOKING_STATUS_UNSPECIFIED = 0; // Booking has been confirmed CONFIRMED = 1; // Booking is awaiting confirmation by the merchant before it can transition // into CONFIRMED status. Only applicable to non-payments Dining or // Beauty verticals. PENDING_MERCHANT_CONFIRMATION = 2; // Booking has been canceled on behalf of the user. // The merchant can still trigger a manual refund. CANCELED = 3; // User did not show for the appointment NO_SHOW = 4; // User did not show for the appointment in violation of the cancellation // policy. NO_SHOW_PENALIZED = 5; // Booking could not be completed by the async backend due to a failure. FAILED = 6; // Booking was asynchronously declined by the merchant. Only applicable to // non-payments Dining or Beauty verticals. DECLINED_BY_MERCHANT = 7; }
CreateBookingResponse
içinde
rezervasyon için sağlanan toplam zaman aralığı için geçerli confirmation_mode
değerini döndür
CreateBookingRequest'e girelim. Ayrıca, rezervasyon eşzamansız olduğunda
status
cihazını PENDING_MERCHANT_CONFIRMATION
olarak ayarlayın. Lütfen
confirmation_mode
kullanıcının neyle ve neyle rezervasyon yapacağıdır.
Google, kullanıcıların kafasını karıştırmamayı amaçlar.
Asenk.
{ "booking": { "slot": { "duration_sec": "3600", "merchant_id": "100001", "resources": { "party_size": 2 }, "service_id": "1000", "start_sec": "1546647234", "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" }, "user_information": { "email": "johnsmith@gmail.com", "family_name": "John", "given_name": "Smith", "telephone": "+1 800-123-4567", "user_id": "2017492857928759285" }, "payment_information": { "prepayment_status": "PREPAYMENT_NOT_PROVIDED" }, "status": "PENDING_MERCHANT_CONFIRMATION" } }
Sync
{ "booking": { "slot": { "duration_sec": "3600", "merchant_id": "100001", "resources": { "party_size": 2 }, "service_id": "1000", "start_sec": "1546647234", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" }, "user_information": { "email": "johnsmith@gmail.com", "family_name": "John", "given_name": "Smith", "telephone": "+1 800-123-4567", "user_id": "2017492857928759285" }, "payment_information": { "prepayment_status": "PREPAYMENT_NOT_PROVIDED" }, "status": "CONFIRMED" } }
UpdateBooking
Eş zamansız sürümün ilk sürümünde kullanıcı mevcut bir rezervasyonda değişiklik yapar desteklenmez. Bunun yerine, kullanıcı rezervasyonu iptal etmeli ve yeni rezervasyon.
Gerçek Zamanlı Güncellemeler
Stok durumu ile ilgili anlık güncellemeler için confirmation_mode
belirtilmelidir. Bu, aşağıdaki yöntemler için geçerlidir:
Envanter RTU'su (SwapServiceAvailability veya BatchPlaceServiceAvailability)
Kullanım
availability.replace
(toplu) yöntemi
veya
services.availability.replace
yöntemi,
Availability
içinde confirmation_mode
öğesini CONFIRMATION_MODE_ASYNCHRONOUS
olarak ayarla
Asenk.
{ "extendedServiceAvailability": [ { "merchantId": "1001", "serviceId": "12310", "startTimeRestrict": "2014-10-02T15:01:23.045123456Z", "endTimeRestrict": "2014-10-02T19:01:23.045123456Z", "availability": [ { "startTime": "2014-10-02T15:30:00.00Z", "duration": "3600s", "spotsOpen": "0", "spotsTotal": "2", "availabilityTag": "1000001", "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" } ] } ] }
Sync
{ "extendedServiceAvailability": [ { "merchantId": "1001", "serviceId": "12310", "startTimeRestrict": "2014-10-02T15:01:23.045123456Z", "endTimeRestrict": "2014-10-02T19:01:23.045123456Z", "availability": [ { "startTime": "2014-10-02T15:30:00.00Z", "duration": "3600s", "spotsOpen": "0", "spotsTotal": "2", "availabilityTag": "1000001", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
Eş Zamansız ve Senkronize
{ "extendedServiceAvailability": [ { "merchantId": "1001", "serviceId": "12310", "startTimeRestrict": "2014-10-02T15:01:23.045123456Z", "endTimeRestrict": "2014-10-02T19:01:23.045123456Z", "availability": [ { "startTime": "2014-10-02T15:30:00.00Z", "duration": "3600s", "spotsOpen": "0", "spotsTotal": "2", "availabilityTag": "1000001", "confirmation_mode": "CONFIRMATION_MODE_ASYNCHRONOUS" }, { "startTime": "2014-10-03T11:00:00.00Z", "duration": "5400s", "spotsOpen": "1", "spotsTotal": "1", "availabilityTag": "1000002", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
Rezervasyon Bildirimi API'si
Rezervasyon durumunda eşzamansız güncellemeler Rezervasyon üzerinden yapılmalıdır. Notification API bookings.patch yöntemi.
Durumu güncellerken, status
alanının adını
updateMask
.
Durum | Açıklama |
---|---|
ONAYLANDI | satıcı rezervasyonu onayladı |
BAŞARISIZ | iş ortağı, satıcıyla yapılan rezervasyonu onaylayamadı veya reddedemedi |
DECLINED_BY_MERCHANT | satıcı rezervasyonu reddetti |
Request: PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status Body: {"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"DECLINED_BY_MERCHANT"}
Rezervasyon hatası olması durumunda rezervasyon durumunu FAILED
olarak ayarlayın ve
rezervasyon_failure değerini belirtin. Durum başka bir değere ayarlanırsa
booking_failure
yoksayıldı.
Request: PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status&booking_failure.cause="SLOT_UNAVAILABLE" Body: {"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"FAILED"}
E-posta Bildirimleri
Eşzamansız rezervasyonlarda, web sitenizin adresiyle ilişkili beş olası e-posta kullanıcılara gönderilen rezervasyonun durumu.
PENDING_MERCHANT_CONFIRMATION
CONFIRMED
DECLINED_BY_MERCHANT
FAILED
CANCELED