這份總覽將簡要說明訂購端對端流程,以及該流程與執行要求網路服務的互動方式。
排序
訂餐端對端使用者介面會處理使用者在訂單中新增餐點,以及決定自取或外送的所有互動,具體取決於餐廳提供的服務。這項服務採用資料動態饋給中的 Restaurant
、Service
和 Menu
實體。
下一個步驟是購物車驗證階段,在這個階段中,使用者建立的結果 Cart
會由您的網路服務處理。
結帳動作
結帳動作是 Google 對您的網路服務端點所做的第一次呼叫。您的網路服務負責驗證 Cart
。您必須確認商品的供應情形和價格、計算並退回稅金、折扣和費用,並驗證訂單運送地址。
結帳程序的流程如下:
- 訂購端到端服務會將包含
Cart
的CheckoutRequestMessage
傳送至執行服務端點。 - 您的網路服務需要根據目前的價格、供應情形和服務供應商,驗證
Cart
中的項目。接著計算總價,包括折扣、稅金和運費。 - 端點會傳回
CheckoutResponseMessage
,其中包含成功要求的未修改Cart
。FoodErrorExtension
可納入CheckoutResponseMessage
中,以便提出處理錯誤或建議小幅變更 (如有必要)。
驗證 Cart
後,使用者可以選擇繼續流程中的訂單提交階段。
提交訂單動作
使用者下單時,系統會觸發提交訂單動作。您的網路服務必須重新驗證購物車,並在啟用線上付款功能時處理卡片權杖,最後更新訂單狀態。
提交訂單的程序如下:
- 訂購端到端服務會將包含
Order
的SubmitOrderRequestMessage
傳送至執行服務端點。後端需要執行另一項Cart
驗證,才能繼續操作。 您的網路服務會處理
Order
中的付款詳細資料,通常會執行下列動作:- 執行權杖驗證、詐欺檢查和其他資格檢查。
- 授權並視需要扣款。
端點會回傳
SubmitOrderResponseMessage
,其中包含狀態為CREATED
的OrderUpdate
(「已下單」購買狀態)、CONFIRMED
(「已接受」購買狀態) 或REJECTED
(「已拒絕」購買狀態)。
訂單下單後,使用者會期待從您和訂購端對端使用者介面收到訂單狀態更新。您必須向使用者傳送訂單確認電子郵件。此外,您可以使用非同步訂單更新 API,將相關訂單更新資料傳送給 Google。
非同步訂單更新動作
除了您端的任何使用者通知之外,您也必須針對下列事件向 Google 傳送訂單狀態更新:
OrderState
的變更,例如從CREATED
變更為CONFIRMED
,以及從CONFIRMED
變更為IN_TRANSIT
。- 訂單商品的變更,例如價格或供應情形。
- 每當使用者透過其中一個客戶服務管道觸發支援要求。
更新會從 Web 服務端點傳送,格式為包含 OrderUpdate
的 AsyncOrderUpdateRequestMessage
。Google 會回傳 AsyncOrderUpdateResponseMessage
。
流程圖
下圖說明執行要求動作如何與網路服務互動。按一下可放大。
設定執行要求端點
訂餐端對端動作會使用 JSON 訊息與您的網路服務進行通訊,並處理餐點訂單的處理、確認和更新作業。設計 Ordering 端到端網路服務時,您必須定義網址端點,以便接收 Ordering 端到端服務傳送的要求訊息,並將訊息傳回 Google 服務。您的實作方式必須符合下列規定:
- Web 服務必須能夠從 Ordering 端對端服務接收 JSON 訊息,做為
POST
要求。 - 您的網路服務必須提供可供大眾存取的網址端點,稱為執行網址,並在 Actions Center 中指定。出貨網址可用於結帳及提交訂單。您的實作項目必須處理這兩種類型的要求。
- 您的網路服務必須能夠使用訊息驗證方法驗證 Google 傳送的訊息。
- 您實作的網址端點必須能夠透過單一端點處理結帳和訂單履行。您無法使用一個網址端點處理結帳作業,並使用另一個端點提交訂單。
用戶端程式庫
您可以使用「工具」部分中的用戶端程式碼產生器,根據「Fulfillment API」規格驗證網路服務。