Cấu trúc yêu cầu
Các yêu cầu BatchAvailabilityLookup
có thể trải rộng trên nhiều dịch vụ cho cùng một người bán và các khoảng thời gian được yêu cầu có thể trải rộng trên nhiều tài nguyên và ngày. Bạn nên sử dụng một mã dịch vụ duy nhất cho nhiều người bán để đơn giản hoá quy trình tích hợp.
Thời gian phản hồi
Các yêu cầu BatchAvailabilityLookup
có ngưỡng độ trễ là 1,5 giây trước khi phản hồi được coi là không thành công. Đảm bảo rằng hệ thống định tuyến DNS và mạng nội bộ của bạn được đồng bộ hoá để giảm thiểu mọi độ trễ trong yêu cầu gửi đến cơ sở hạ tầng của bạn. Nếu có nhiều lỗi hết thời gian chờ, thì chế độ tích hợp của bạn có thể bị chuyển sang trạng thái ngoại tuyến cho đến khi bạn có thể giải quyết các lỗi đó.
Mỗi phản hồi cho một yêu cầu phải trả về trạng thái thực tế của khoảng không quảng cáo tại thời điểm đó chứ không phải khi quy trình đặt phòng được nhập. Nếu một khung giờ đã được đặt hết, hãy phản ánh điều đó trong các câu trả lời hiện tại.
Định nghĩa
Phương thức BatchAvailabilityLookup
xác minh rằng chỉ những khung giờ hiện tại mới được trình bày cho người dùng trong quy trình đặt phòng.
Yêu cầu BatchAvailabilityLookup
message BatchAvailabilityLookupRequest {
// ID of the merchant.
string merchant_id = 1;
// Multiple slot times to be checked for availability. All queried times apply
// to the same merchant_id and service_id.
repeated SlotTime slot_time = 3;
reserved 2;
}
Phản hồi BatchAvailabilityLookup
// Response for the [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest]
// RPC with the availabilities of the appointment slots.
message BatchAvailabilityLookupResponse {
// The availabilities for the requested SlotTime entries. There must be
// exactly one slot_time_availability for each SlotTime entry in the
// [ext.maps.booking.partner.v3.BatchAvailabilityLookupRequest].
repeated SlotTimeAvailability slot_time_availability = 1;
}
SlotTime
// Identifies a Slot service_id and start time and optionally, the Slot duration
// and resources, for a specific merchant. Note that this differs from the
// definition of Slot, as it does not include merchant_id identifier.
message SlotTime {
// ID of the service. (required)
string service_id = 5;
// Start time of the appointment slot in seconds of UTC time since Unix epoch
// (required)
int64 start_sec = 1;
// Duration of the appointment slot in seconds (optional)
int64 duration_sec = 2;
// Opaque tag that identifies the availability slot and matches the value
// provided in the Availability Feed (optional)
string availability_tag = 3;
// The set of resources that specifies the appointment slot, e.g. by
// indicating the staff member and room selected by the user, or party size
// for dining slots (optional)
ResourceIds resource_ids = 4;
// Indicates whether bookings of this slot will be confirmed
// synchronously or asynchronously. (optional)
// An UNSPECIFIED value will be interpreted as synchronous.
ConfirmationMode confirmation_mode = 6;
}
SlotTimeAvailability
Nếu không tìm thấy vùng quảng cáo nào, hãy trả về một phản hồi trống. Đừng trả về lỗi 400, thay vào đó, bạn có thể trả về mã 204 hoặc mã 2xx khác. Thao tác này xác minh rằng phản hồi đã được nhận chính xác.
message SlotTimeAvailability {
// The SlotTime for which availability was checked.
SlotTime slot_time = 1;
// Whether the requested SlotTime is available
bool available = 2;
}
Mẫu BatchAvailabilityLookup
Tải trang
Khi người dùng nhấp vào Đặt phòng trực tuyến để bắt đầu quy trình đặt phòng, một yêu cầu BatchAvailabilityLookup
sẽ được gửi kèm theo các khung giờ trống đã biết của người bán. Đối với mỗi khung giờ được gửi trong yêu cầu, Máy chủ đặt phòng sẽ trả về một phản hồi cho biết tình trạng còn trống thực tế và hiện tại của khung giờ đó. Chỉ những vị trí còn trống mới được hiển thị cho người dùng trên giao diện người dùng.
Nếu người dùng thay đổi số lượng người trong nhóm hoặc chọn một ngày khác, thì có thể một yêu cầu tải trang khác sẽ được gửi.
Yêu cầu tải trang
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606469400"
},
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606471200"
}
]
}
Phản hồi tải trang
{ "slot_time_availability" :
[
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606467600" }
},
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606469400" }
},
{
"available" : false,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2 },
"service_id" : "1000",
"start_sec" : "1606471200" }
}
]
}
Lượt nhấp vào vị trí
Khi người dùng chọn một khung giờ có thể đặt trước, yêu cầu BatchAvailabilityLookup
sẽ được gửi cho khung giờ cụ thể đó. Máy chủ đặt phòng của bạn trả về một phản hồi cho biết tình trạng còn trống thực tế của khung giờ hiện tại. Phản hồi dự kiến là False cho trạng thái còn trống nếu một người dùng Google khác đã đặt trước vị trí đó, trong nội bộ hệ thống của bạn hoặc giữa các yêu cầu tải trang và nhấp vào vị trí.
Yêu cầu nhấp vào vị trí
{
"merchant_id" : "1234",
"slot_time" : [
{
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
]
}
Phản hồi khi nhấp vào vị trí
{
"slot_time_availability" : [
{
"available" : true,
"slot_time" : {
"duration_sec" : "1800",
"resource_ids" : {
"party_size" : 2
},
"service_id" : "1000",
"start_sec" : "1606467600"
}
}
]
}