導入預訂伺服器

您必須完成預訂伺服器,才能允許「透過 Google 預訂」進行回呼,以代表您建立及更新預訂。

  • 標準導入。這可讓「透過 Google 預訂」 代替使用者進行預約和預訂。

請參閱合作夥伴入口網站說明文件,瞭解如何設定沙箱與實際工作環境預訂伺服器的連線。

導入 REST API 介面

根據 REST 實作 API 介面,讓 Google 透過 HTTP 傳送預訂伺服器要求。

首先,請設定可以連線至「透過 Google 預訂」沙箱環境的開發或沙箱預訂伺服器。沙箱環境經過完整測試後,才移至實際執行環境。

方法

您必須為每種預訂伺服器提供不同的 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 資源

預訂

下列資源類型可用於標準導入:

  • 版位:廣告空間版位。
  • 預訂:廣告空間時段的預約。

流程:建立預訂

本節說明如何為標準導入建立預訂。

圖 1:透過運算單元建立預訂的工作流程
圖 1:透過運算單元建立預訂的工作流程

使用者建立預訂時,Google 會將使用者的姓名、姓氏、電話號碼和電子郵件地址傳送給您。從你的角度來看,這筆預訂必須視為訪客結帳,因為「透過 Google 預訂」無法在你的系統中查詢使用者的帳戶。請確認最終預訂資訊與您預訂系統中的商家預訂資料一致。 根據預設,針對非付費預訂,系統支援訪客結帳及備用電子郵件地址。

安全性和驗證

所有與預訂伺服器之間的通訊都透過 HTTPS 進行,因此您的伺服器必須有與 DNS 名稱相符的有效 TLS 憑證。為了協助您設定伺服器,建議您使用公開的安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 驗證工具,例如 Qualys 的 SSL 伺服器測試

Google 對預訂伺服器發出的所有要求,都是使用 HTTP 基本驗證進行驗證。您可以在合作夥伴入口網站的「預訂伺服器設定」頁面中輸入預訂伺服器的基本驗證憑證 (使用者名稱和密碼)。密碼每 6 個月必須輪替一次。

範例基本架構導入

開始之前,請先參考我們針對 Node.js 和 Java 架構編寫的預訂伺服器範例架構:

這些伺服器已利用虛設常式模擬 REST 方法;

需求條件

HTTP 錯誤和商業邏輯錯誤

當後端處理 HTTP 要求時,可能會發生兩種錯誤。

  • 與基礎架構或錯誤資料有關的錯誤
  • 商業邏輯相關錯誤
    • 傳回設為 200 OK 的 HTTP 狀態碼,並在回應主體中指定商業邏輯失敗。各伺服器實作類型適用的商業邏輯錯誤類型都不同。

針對標準實作,系統可能會在預訂失敗中擷取可能的商業邏輯錯誤,並在 HTTP 回應中傳回這些錯誤。建立或更新資源時可能會發生商業邏輯錯誤,例如處理 CreateBookingUpdatingBooking 方法時。相關例子包括但不限於:

  • 如果要求的運算單元已無法使用,系統就會使用 SLOT_UNAVAILABLE
  • 如果不接受提供的信用卡類型,系統會使用 PAYMENT_ERROR_CARD_TYPE_REJECTED

冪等

透過網路進行通訊時,系統並非穩定可靠;如果沒有收到回應,Google 可能會重試 HTTP 要求。因此,變更狀態的所有方法都必須是冪等的:

  • CreateBooking
  • UpdateBooking

針對 UpdateBooking 以外的每項要求訊息,都會包含冪等符記以識別要求。這可讓您區分重試的 REST 呼叫 (意圖建立單一要求和兩個不同的要求)。UpdateBooking 各自以預訂項目 ID 來識別,因此要求中不包含冪等性權杖。

以下是預訂伺服器處理冪等的一些範例:

  • 成功的 CreateBooking HTTP 回應包含已建立的預訂。在某些情況下,系統會在預訂流程中處理付款事宜。如果第二次收到完全相同的 CreateBookingRequest (具有相同的 idempotency_token),則必須傳回相同的 CreateBookingResponse。系統不會建立第二筆預訂,而是向使用者收取一次費用 (如適用)。

    請注意,如果 CreateBooking 嘗試失敗且重新傳送相同的要求,則後端應重試此要求。

冪等要求適用於會使狀態變動的所有方法。