總覽

這份總覽將簡要說明訂購端對端流程,以及該流程與執行要求網路服務的互動方式。

排序

訂餐端對端使用者介面會處理使用者在訂單中新增餐點,以及決定自取或外送的所有互動,具體取決於餐廳提供的服務。這項服務採用資料動態饋給中的 RestaurantServiceMenu 實體。

下一個步驟是購物車驗證階段,在這個階段中,使用者建立的結果 Cart 會由您的網路服務處理。

結帳動作

結帳動作是 Google 對您的網路服務端點所做的第一次呼叫。您的網路服務負責驗證 Cart。您必須確認商品的供應情形和價格、計算並退回稅金、折扣和費用,並驗證訂單運送地址。

結帳程序的流程如下:

  1. 訂購端到端服務會將包含 CartCheckoutRequestMessage 傳送至執行服務端點。
  2. 您的網路服務需要根據目前的價格、供應情形和服務供應商,驗證 Cart 中的項目。接著計算總價,包括折扣、稅金和運費。
  3. 端點會傳回 CheckoutResponseMessage,其中包含成功要求的未修改 CartFoodErrorExtension 可納入 CheckoutResponseMessage 中,以便提出處理錯誤或建議小幅變更 (如有必要)。

驗證 Cart 後,使用者可以選擇繼續流程中的訂單提交階段。

提交訂單動作

使用者下單時,系統會觸發提交訂單動作。您的網路服務必須重新驗證購物車,並在啟用線上付款功能時處理卡片權杖,最後更新訂單狀態。

提交訂單的程序如下:

  1. 訂購端到端服務會將包含 OrderSubmitOrderRequestMessage 傳送至執行服務端點。後端需要執行另一項 Cart 驗證,才能繼續操作。
  2. 您的網路服務會處理 Order 中的付款詳細資料,通常會執行下列動作:

    1. 執行權杖驗證、詐欺檢查和其他資格檢查。
    2. 授權並視需要扣款。
  3. 端點會回傳 SubmitOrderResponseMessage,其中包含狀態為 CREATEDOrderUpdate (「已下單」購買狀態)、CONFIRMED (「已接受」購買狀態) 或 REJECTED (「已拒絕」購買狀態)。

訂單下單後,使用者會期待從您和訂購端對端使用者介面收到訂單狀態更新。您必須向使用者傳送訂單確認電子郵件。此外,您可以使用非同步訂單更新 API,將相關訂單更新資料傳送給 Google。

非同步訂單更新動作

除了您端的任何使用者通知之外,您也必須針對下列事件向 Google 傳送訂單狀態更新:

  1. OrderState 的變更,例如從 CREATED 變更為 CONFIRMED,以及從 CONFIRMED 變更為 IN_TRANSIT
  2. 訂單商品的變更,例如價格或供應情形。
  3. 每當使用者透過其中一個客戶服務管道觸發支援要求。

更新會從 Web 服務端點傳送,格式為包含 OrderUpdateAsyncOrderUpdateRequestMessage。Google 會回傳 AsyncOrderUpdateResponseMessage

流程圖

下圖說明執行要求動作如何與網路服務互動。按一下可放大。

端對端訂購流程

設定執行要求端點

訂餐端對端動作會使用 JSON 訊息與您的網路服務進行通訊,並處理餐點訂單的處理、確認和更新作業。設計 Ordering 端到端網路服務時,您必須定義網址端點,以便接收 Ordering 端到端服務傳送的要求訊息,並將訊息傳回 Google 服務。您的實作方式必須符合下列規定:

  • Web 服務必須能夠從 Ordering 端對端服務接收 JSON 訊息,做為 POST 要求。
  • 您的網路服務必須提供可供大眾存取的網址端點,稱為執行網址,並在 Actions Center 中指定。出貨網址可用於結帳及提交訂單。您的實作項目必須處理這兩種類型的要求。
  • 您的網路服務必須能夠使用訊息驗證方法驗證 Google 傳送的訊息。
  • 您實作的網址端點必須能夠透過單一端點處理結帳和訂單履行。您無法使用一個網址端點處理結帳作業,並使用另一個端點提交訂單。

用戶端程式庫

您可以使用「工具」部分中的用戶端程式碼產生器,根據「Fulfillment API」規格驗證網路服務。