您必須建立預訂伺服器,才能讓 Actions Center 進行回呼,代表您建立及更新預訂。
- 標準導入:這可讓 Actions Center 代表使用者為您建立預約、預訂和預訂事宜。
- 等候名單導入。如果是參與等候名單前測計畫,則會使用這項屬性。這樣一來,Actions Center 就能擷取預估等候時間,並代表使用者建立等候名單項目。如要導入等候名單的預訂伺服器,請參閱導入等候名單預訂伺服器。
請參閱合作夥伴入口網站說明文件,瞭解如何設定與沙箱及實際執行預訂伺服器的連線。
導入 REST API 介面
導入以 REST 為基礎的 API 介面,這可讓 Google 透過 HTTP 傳送預訂伺服器要求。
首先,請設定開發或沙箱預訂伺服器,以便連結至 Actions Center 沙箱環境。您必須先完整測試沙箱伺服器,才能移至實際執行環境。
方法
您必須針對每種預訂伺服器採用不同的 API 方法,您也可以選擇以 proto 格式下載服務定義,然後開始實作 API。下表說明各種實作的方法,並提供服務 proto 格式的連結。
標準導入 |
---|
標準服務定義:下載 proto 服務定義檔案。 |
方法 | HTTP 要求 |
---|---|
HealthCheck | GET /v3/HealthCheck/ |
BatchAvailabilityLookup | POST /v3/BatchAvailabilityLookup/ |
CreateBooking | POST /v3/CreateBooking/ |
UpdateBooking | POST /v3/UpdateBooking/ |
GetBookingStatus | POST /v3/GetBookingStatus/ |
ListBookings | POST /v3/ListBookings/ |
API 資源
預訂
下列資源類型可用於標準導入:
流程:建立預訂
本節說明如何為標準導入建立預訂。
使用者建立預訂時,Google 會將使用者的姓名、電話號碼和電子郵件地址傳送給您。從您的視角,這個預訂必須視為訪客結帳,因為 Actions Center 無法在您的系統中查詢使用者帳戶。請確認最終預訂資訊與預訂系統中的商家預訂資訊一致。 根據預設,非付費預訂支援訪客結帳功能和備用電子郵件地址。
安全性和驗證
所有與預訂伺服器的通訊都是透過 HTTPS 進行,因此伺服器必須具備與 DNS 名稱相符的有效傳輸層安全標準 (TLS) 憑證。為協助您設定伺服器,建議您使用公開的 SSL/TLS 驗證工具,例如 Qualys 的 SSL 伺服器測試。
Google 對預訂伺服器發出的所有要求都會使用 HTTP 基本驗證進行驗證。您可以前往合作夥伴入口網站的「預訂伺服器設定」頁面,輸入預訂伺服器的基本驗證憑證 (使用者名稱和密碼)。密碼必須每六個月輪替一次。
範例基本架構導入
首先,請查看下列專為 Node.js 和 Java 架構編寫的預訂伺服器基本架構範例:
- Node.js 基本架構 js-maps-booking-rest-server-v3-skeleton
- Java 架構 java-maps-booking-rest-server-v3-skeleton
這些伺服器已利用虛設常式模擬 REST 方法;
需求條件
HTTP 錯誤和商業邏輯錯誤
在後端處理 HTTP 要求時,可能會發生兩種錯誤。
- 基礎架構或資料錯誤相關錯誤
- 將這些錯誤傳回給用戶端,並附上標準 HTTP 錯誤代碼。 請參閱 HTTP 狀態碼完整清單。
- 商業邏輯相關錯誤
- 傳回設為
200
OK 的 HTTP 狀態碼,並在回應主體中指定商業邏輯失敗。不同類型的伺服器實作方式可能會遇到不同的商業邏輯錯誤。
- 傳回設為
如果是標準導入作業,系統會從預訂失敗中擷取可能的商業邏輯錯誤,並透過 HTTP 回應傳回。建立或更新資源時可能會發生商業邏輯錯誤。例如處理 CreateBooking
或 UpdatingBooking
方法時。相關範例包括但不限於:
- 如果要求的時段已無法使用,則會使用
SLOT_UNAVAILABLE
。 - 如果不接受提供的信用卡類型,系統會使用
PAYMENT_ERROR_CARD_TYPE_REJECTED
。
冪等
透過網路通訊有時不一定可靠,如果沒有收到回應,Google 可能會重試 HTTP 要求。因此,所有會改變狀態的方法都必須為冪等:
CreateBooking
UpdateBooking
針對 UpdateBooking
以外的所有要求訊息,系統都會顯示冪等權杖,以便識別該項要求。這可讓您區分重試的 REST 呼叫,且意圖建立單一要求和兩個不同的要求。UpdateBooking
是專屬於其預訂項目 ID 的專屬識別碼,因此這類要求中不包含冪等代碼。
以下是預訂伺服器處理冪等的一些範例:
成功的
CreateBooking
HTTP 回應會包含已建立的預訂。在某些情況下,付款作業會在預訂流程中處理。如果第二次收到完全相同的CreateBookingRequest
(具有相同的idempotency_token
),則必須傳回相同的CreateBookingResponse
。系統不會建立第二筆預訂,且只會向使用者收取一次費用 (如適用)。請注意,如果發生
CreateBooking
嘗試失敗且系統重新傳送相同要求,您的後端應進行重試。
冪等要求適用於會使狀態變動的所有方法。