Triển khai máy chủ đặt phòng

Bạn cần thiết lập một máy chủ đặt trước để cho phép Trung tâm hành động thực hiện lệnh gọi lại nhằm thay mặt bạn tạo và cập nhật lượt đặt trước.

  • Quy trình triển khai chuẩn. Việc này cho phép Trung tâm hành động thay mặt người dùng tạo cuộc hẹn, đặt trước và đặt chỗ với bạn.
  • Cách triển khai Danh sách chờ. Chính sách này được sử dụng khi bạn tham gia chương trình thí điểm về danh sách chờ. Việc này cho phép Trung tâm hành động truy xuất thời gian chờ ước tính và thay mặt người dùng tạo mục nhập danh sách chờ. Để triển khai một máy chủ đặt trước cho danh sách chờ, vui lòng tham khảo bài viết Triển khai máy chủ đặt trước danh sách chờ.

Hãy tham khảo tài liệu về Cổng đối tác để tìm hiểu cách định cấu hình kết nối với máy chủ hộp cát và máy chủ đặt trước phiên bản sản xuất.

Triển khai giao diện API REST

Triển khai giao diện API dựa trên REST. Việc này cho phép Google gửi các yêu cầu máy chủ đặt phòng qua HTTP.

Để bắt đầu, hãy thiết lập một máy chủ đặt trước hộp cát hoặc phát triển có thể kết nối với môi trường hộp cát của Actions Center. Chỉ chuyển sang môi trường sản xuất sau khi máy chủ hộp cát đã được kiểm thử đầy đủ.

Phương thức

Đối với mỗi loại máy chủ đặt phòng, bạn phải sử dụng một nhóm phương thức API khác nhau. Bạn có thể tuỳ ý tải định nghĩa dịch vụ xuống ở định dạng proto để bắt đầu triển khai API. Các bảng sau đây cho thấy các phương thức cho từng cách triển khai và bao gồm những đường liên kết đến các định dạng proto dịch vụ.

Triển khai chuẩn
Định nghĩa dịch vụ tiêu chuẩn Tải tệp định nghĩa dịch vụ proto xuống.
Phương thức Yêu cầu HTTP
HealthCheck TẢI /v3/HealthCheck/
BatchAvailabilityLookup POST /v3/BatchAvailabilityLookup/
CreateBooking POST /phiên bản 3/Tạo yêu cầu đặt chỗ/
UpdateBooking POST /v3/UpdateBooking/
GetBookingStatus POST /v3/GetBookingStatus/
ListBookings POST /v3/ListBookings/

Tài nguyên API

Thông tin đặt chỗ

Các loại tài nguyên sau được dùng trong phương thức triển khai chuẩn:

  • Khe: Một vùng khoảng không quảng cáo.
  • Lượt đặt trước: Cuộc hẹn cho một vùng khoảng không quảng cáo.

Quy trình: tạo một lượt đặt trước

Phần này trình bày cách tạo một lượt đặt trước để triển khai tiêu chuẩn.

Hình 1: Quy trình tạo lượt đặt trước từ một khung giờ
Hình 1: Quy trình tạo lượt đặt trước từ một khung giờ

Khi người dùng đặt lịch hẹn, Google sẽ gửi cho bạn họ tên, số điện thoại và email của người dùng. Theo quan điểm của bạn, lượt đặt phòng này cần được coi là lượt thanh toán không cần đăng nhập vì Trung tâm hành động không thể tra cứu tài khoản của người dùng trong hệ thống của bạn. Đảm bảo rằng lượt đặt trước cuối cùng giống với lượt đặt trước của người bán trong hệ thống đặt trước của bạn. Theo mặc định, tính năng thanh toán không cần đăng ký và email thay thế được hỗ trợ đối với các lượt đặt phòng không trả phí.

Bảo mật và xác thực

Mọi hoạt động giao tiếp với máy chủ đặt phòng đều diễn ra qua HTTPS, nên máy chủ của bạn cần phải có chứng chỉ TLS hợp lệ khớp với tên DNS của máy chủ. Để giúp thiết lập máy chủ, bạn nên sử dụng một công cụ xác minh SSL/TLS có sẵn công khai, chẳng hạn như Kiểm tra máy chủ SSL của Qualys.

Tất cả các yêu cầu mà Google gửi đến máy chủ đặt phòng của bạn sẽ được xác thực bằng quy trình xác thực cơ bản HTTP. Bạn có thể nhập thông tin xác thực cơ bản (tên người dùng và mật khẩu) cho máy chủ đặt phòng trên trang Cấu hình máy chủ đặt phòng trong Cổng đối tác. Bạn phải xoay vòng mật khẩu 6 tháng một lần.

Ví dụ về cách triển khai bộ xương

Để bắt đầu, hãy xem các bộ khung mẫu sau đây của máy chủ đặt phòng được viết cho khung Node.js và Java:

Các máy chủ này đã loại bỏ các phương thức REST.

Yêu cầu

Lỗi HTTP và lỗi logic nghiệp vụ

Khi phần phụ trợ của bạn xử lý các yêu cầu HTTP, hai loại lỗi có thể xảy ra.

  • Lỗi liên quan đến cơ sở hạ tầng hoặc dữ liệu không chính xác
  • Lỗi liên quan đến logic kinh doanh
    • Trả về mã trạng thái HTTP được đặt thành 200 OK và chỉ định lỗi logic nghiệp vụ trong nội dung phản hồi. Có các loại lỗi logic nghiệp vụ khác nhau tuỳ theo cách triển khai máy chủ.

Đối với quy trình triển khai Tiêu chuẩn, các lỗi logic nghiệp vụ có thể xảy ra sẽ được ghi lại trong phần Lỗi đặt trước và được trả về trong phản hồi HTTP. Bạn có thể gặp lỗi logic nghiệp vụ khi tạo hoặc cập nhật một tài nguyên. Ví dụ: khi bạn xử lý các phương thức CreateBooking hoặc UpdatingBooking. Một số ví dụ bao gồm, nhưng không giới hạn ở các sản phẩm sau:

  • SLOT_UNAVAILABLE sẽ được dùng nếu khe được yêu cầu không còn nữa.
  • PAYMENT_ERROR_CARD_TYPE_REJECTED được sử dụng nếu loại thẻ tín dụng đã cung cấp không được chấp nhận.

Tính không xác định

Hoạt động giao tiếp qua mạng không phải lúc nào cũng đáng tin cậy và Google có thể thử lại các yêu cầu HTTP nếu không nhận được phản hồi. Vì lý do này, tất cả các phương thức có trạng thái thay đổi đều phải không thay đổi giá trị:

  • CreateBooking
  • UpdateBooking

Đối với mọi thông báo yêu cầu ngoại trừ UpdateBooking, mã thông báo giá trị nhận dạng sẽ được đưa vào để xác định riêng biệt yêu cầu. Điều này cho phép bạn phân biệt giữa lệnh gọi REST được thử lại, với ý định tạo một yêu cầu duy nhất và hai yêu cầu riêng biệt. UpdateBooking được xác định riêng biệt theo mã mục đặt phòng tương ứng, do đó, sẽ không có mã thông báo xác định giá trị nhận dạng nào được đưa vào yêu cầu của họ.

Sau đây là một số ví dụ về cách máy chủ đặt chỗ xử lý trường hợp không thay đổi:

  • Phản hồi HTTP CreateBooking thành công sẽ bao gồm yêu cầu đặt phòng đã tạo. Trong một số trường hợp, khoản thanh toán sẽ được xử lý trong quy trình đặt phòng. Nếu nhận được cùng một CreateBookingRequest lần thứ hai (với cùng một idempotency_token) thì hệ thống phải trả về cùng một CreateBookingResponse. Không có lượt đặt phòng thứ hai nào được tạo và người dùng sẽ bị tính phí chính xác một lần (nếu có).

    Xin lưu ý rằng nếu CreateBooking không thành công và yêu cầu tương tự được gửi lại, thì phần phụ trợ của bạn sẽ thử lại trong trường hợp này.

Yêu cầu về tính không xác định áp dụng cho tất cả phương thức thay đổi trạng thái.