Thông tin tổng quan này tóm tắt quy trình Đặt hàng toàn diện và cách quy trình này tương tác với dịch vụ web thực hiện đơn hàng của bạn.
Thứ tự sắp xếp
Giao diện người dùng Đặt hàng toàn diện xử lý mọi hoạt động tương tác với người dùng khi họ thêm các món ăn vào đơn đặt hàng và quyết định đến lấy hàng hoặc giao hàng, tuỳ thuộc vào dịch vụ mà nhà hàng cung cấp. Trải nghiệm này được cung cấp bởi các thực thể Restaurant
, Service
và Menu
có trong nguồn cấp dữ liệu.
Bước tiếp theo là bước xác thực giỏ hàng, trong đó Cart
do người dùng tạo sẽ được dịch vụ web của bạn xử lý.
Hành động thanh toán
Hành động thanh toán là lệnh gọi đầu tiên mà Google thực hiện đến điểm cuối dịch vụ web của bạn.
Dịch vụ web của bạn chịu trách nhiệm xác thực Cart
. Bạn phải xác nhận tình trạng còn hàng và giá của các mặt hàng, tính toán và trả lại thuế, chiết khấu và phí, đồng thời xác thực địa chỉ giao hàng của đơn đặt hàng.
Quy trình thanh toán tuân theo trình tự sau:
- Dịch vụ Đặt hàng toàn diện sẽ gửi một
CheckoutRequestMessage
chứaCart
đến điểm cuối của dịch vụ web thực hiện đơn hàng. - Dịch vụ web của bạn cần xác thực các mặt hàng trong
Cart
dựa trên giá hiện tại, tình trạng còn hàng và nhà cung cấp dịch vụ. Sau đó, bạn tính tổng giá, bao gồm cả chiết khấu, thuế và phí giao hàng. - Điểm cuối của bạn phản hồi bằng một
CheckoutResponseMessage
chứaCart
chưa sửa đổi cho các yêu cầu thành công. Bạn có thể đưaFoodErrorExtension
vàoCheckoutResponseMessage
để báo lỗi xử lý hoặc đề xuất các thay đổi nhỏ (nếu cần).
Sau khi Cart
được xác thực, người dùng có thể chọn tiếp tục đến bước gửi đơn đặt hàng của quy trình.
Hành động gửi đơn đặt hàng
Thao tác gửi đơn đặt hàng được kích hoạt khi người dùng đặt hàng. Dịch vụ web của bạn phải xác thực lại giỏ hàng, xử lý mã thông báo thẻ nếu bạn bật tính năng thanh toán trực tuyến, và cuối cùng là cập nhật trạng thái của đơn đặt hàng.
Quy trình gửi đơn đặt hàng tuân theo trình tự sau:
- Dịch vụ Đặt hàng toàn diện sẽ gửi một
SubmitOrderRequestMessage
chứaOrder
đến điểm cuối của dịch vụ web thực hiện đơn hàng. Phần phụ trợ của bạn cần thực hiện một quy trình xác thựcCart
khác trước khi tiếp tục. Dịch vụ web của bạn xử lý thông tin thanh toán có trong
Order
, thường thực hiện các thao tác sau:- Thực hiện xác minh mã thông báo, hành vi gian lận và các bước kiểm tra khác về điều kiện.
- Xác thực và (không bắt buộc) tính phí thẻ.
Điểm cuối của bạn phản hồi bằng một
SubmitOrderResponseMessage
chứa mộtOrderUpdate
có trạng thái làCREATED
("Đã đặt hàng"),CONFIRMED
("Đã chấp nhận") hoặcREJECTED
("Đã từ chối").
Sau khi đặt hàng, người dùng sẽ nhận được thông tin cập nhật về trạng thái đơn đặt hàng từ cả bạn và giao diện người dùng Đặt hàng toàn diện. Bạn bắt buộc phải gửi email xác nhận đơn đặt hàng cho người dùng. Ngoài ra, bạn có thể sử dụng API Cập nhật đơn đặt hàng không đồng bộ để gửi thông tin cập nhật liên quan về đơn đặt hàng cho Google.
Thao tác cập nhật đơn đặt hàng không đồng bộ
Ngoài mọi thông báo cho người dùng từ phía bạn, bạn cũng phải gửi thông tin cập nhật trạng thái đơn đặt hàng cho Google đối với các sự kiện sau:
- Các thay đổi đối với
OrderState
, chẳng hạn như chuyển đổi từCREATED
sangCONFIRMED
vàCONFIRMED
sangIN_TRANSIT
. - Thay đổi đối với các mặt hàng trong đơn đặt hàng, chẳng hạn như giá hoặc tình trạng còn hàng.
- Bất cứ khi nào người dùng kích hoạt yêu cầu hỗ trợ từ một trong các kênh hỗ trợ khách hàng của bạn.
Thông tin cập nhật được gửi từ điểm cuối dịch vụ web dưới dạng một AsyncOrderUpdateRequestMessage
chứa OrderUpdate
. Google phản hồi bằng AsyncOrderUpdateResponseMessage
.
Sơ đồ trình tự
Hình minh hoạ sau đây cho thấy cách các hành động thực hiện tương tác với dịch vụ web của bạn. Nhấp để phóng to.
Thiết lập điểm cuối thực hiện đơn hàng
Các hành động Đặt hàng toàn diện sử dụng thông điệp JSON để giao tiếp với dịch vụ web của bạn và xử lý, xác nhận cũng như cập nhật đơn đặt món ăn. Khi thiết kế dịch vụ web Toàn diện về việc đặt hàng, bạn phải xác định một điểm cuối URL nhận thông báo yêu cầu từ dịch vụ Toàn diện về việc đặt hàng và có thể trả về thông báo cho dịch vụ của Google. Cách triển khai của bạn phải đáp ứng các yêu cầu sau:
- Dịch vụ web của bạn phải có thể nhận được thông báo JSON dưới dạng yêu cầu
POST
từ dịch vụ Đặt hàng toàn diện. - Dịch vụ web của bạn phải cung cấp một điểm cuối URL có thể truy cập công khai, được gọi là URL thực hiện đơn hàng mà bạn chỉ định trong Trung tâm hành động. URL thực hiện đơn hàng được dùng để thanh toán và gửi đơn đặt hàng. Quá trình triển khai của bạn phải xử lý cả hai loại yêu cầu.
- Dịch vụ web của bạn phải có khả năng xác minh tin nhắn từ Google bằng phương thức Xác minh tin nhắn.
- Việc triển khai điểm cuối URL của bạn phải có thể xử lý cả quy trình thanh toán và thực hiện đơn đặt hàng bằng một điểm cuối duy nhất. Bạn không thể có một điểm cuối URL để thanh toán và một điểm cuối riêng để gửi đơn đặt hàng.
Thư viện ứng dụng
Bạn có thể sử dụng trình tạo mã ứng dụng trong mục Công cụ để xác thực dịch vụ web của mình theo thông số kỹ thuật của API Thực hiện.