Anda perlu menyiapkan server pemesanan agar Pusat Actions dapat melakukan callback untuk membuat dan memperbarui pemesanan atas nama Anda.
- Penerapan Daftar Tunggu Reservasi. Hal ini digunakan saat Anda berpartisipasi dalam program uji coba Daftar Tunggu Reservasi. Hal ini memungkinkan Actions Center mengambil estimasi waktu tunggu dan membuat entri daftar tunggu atas nama pengguna.
- Penerapan Standar. Hal ini memungkinkan Pusat Tindakan membuat janji temu, pemesanan, dan reservasi dengan bisnis Anda atas nama pengguna. Untuk menerapkan server pemesanan bagi integrasi Reservasi Menyeluruh, lihat Menerapkan server pemesanan.
Lihat dokumentasi Partner Portal untuk mempelajari cara mengonfigurasi koneksi ke server pemesanan sandbox dan produksi.
Menerapkan antarmuka REST API
Menerapkan antarmuka API berdasarkan REST. Hal ini memungkinkan Google mengirimkan permintaan server pemesanan melalui HTTP.
Untuk memulai, siapkan server pemesanan pengembangan atau sandbox yang dapat dihubungkan ke lingkungan sandbox Actions Center. Beralihlah ke lingkungan produksi hanya setelah server sandbox sepenuhnya diuji.
Metode
Untuk setiap jenis server pemesanan, Anda perlu memiliki kumpulan metode API yang berbeda-beda. Secara opsional, Anda dapat mendownload definisi layanan dalam format proto untuk memulai penerapan API. Tabel berikut menunjukkan metode untuk setiap penerapan dan menyertakan link ke format proto layanan.
Penerapan daftar tunggu |
---|
Definisi layanan daftar tunggu. Download file definisi layanan proto. |
Metode | Permintaan HTTP |
---|---|
HealthCheck | GET /v3/HealthCheck/ |
BatchGetWaitEstimates | POST /v3/BatchGetWaitEstimates/ |
CreateWaitlistEntry | POST /v3/CreateWaitlistEntry/ |
GetWaitlistEntry | POST /v3/GetWaitlistEntry/ |
DeleteWaitlistEntry | POST /v3/DeleteWaitlistEntry/ |
Resource API
Daftar tunggu
Resource berikut digunakan untuk menerapkan pemesanan berdasarkan daftar tunggu:
- WaitEstimate: Estimasi waktu tunggu untuk penjual dan jumlah tamu tertentu.
- WaitlistEntry: Entri pengguna di daftar tunggu.
Alur: membuat entri daftar tunggu
Bagian ini membahas cara membuat pemesanan untuk integrasi Daftar Tunggu Reservasi.
Saat pengguna membuat entri daftar tunggu, Google mengirimkan nama depan, nama belakang, nomor telepon, dan email pengguna. Email tersebut sama dengan Akun Google pengguna dan ditangani sebagai ID unik. Dari sudut pandang Anda, daftar tunggu ini harus ditangani sebagai checkout tamu, karena Pesan dengan Google tidak dapat mencari akun pengguna di sistem Anda. Pastikan entri daftar tunggu akhir terlihat sama dengan entri di penjual Anda yang berasal dari sistem daftar tunggu Anda.
Keamanan dan Autentikasi
Semua komunikasi ke server pemesanan Anda dilakukan melalui HTTPS, sehingga sangat penting bahwa server Anda memiliki sertifikat TLS valid yang cocok dengan nama DNS-nya. Untuk membantu menyiapkan server Anda, sebaiknya gunakan alat verifikasi SSL/TLS yang tersedia secara gratis, seperti SSL Server Test dari Qualys.
Semua permintaan yang akan dibuat Google ke server pemesanan Anda akan diautentikasi menggunakan autentikasi dasar HTTP. Kredensial autentikasi dasar (nama pengguna dan sandi) untuk server pemesanan Anda dapat dimasukkan di halaman Konfigurasi Server Pemesanan dalam Portal Partner. Sandi harus dirotasi setiap enam bulan.
Contoh Penerapan Skeleton
Untuk memulai, lihat contoh skeleton server pemesanan berikut yang ditulis untuk framework Node.js dan Java:
- Skeleton Node.js js-maps-booking-rest-server-v3-skeleton
- Skeleton Java java-maps-booking-rest-server-v3-skeleton
Server tersebut telah menghapus metode REST.
Persyaratan
Error HTTP dan error logika bisnis
Saat backend menangani permintaan HTTP, dua jenis error mungkin terjadi.
- Error terkait infrastruktur atau data yang salah
- Tampilkan error ini ke klien dengan kode error HTTP standar. Lihat daftar kode status HTTP lengkap.
- Error yang terkait dengan logika bisnis
- Tampilkan kode status HTTP yang disetel ke
200
OK, dan tentukan kegagalan logika bisnis dalam isi respons. Jenis error logika bisnis yang dapat Anda temukan akan berbeda-beda untuk berbagai jenis penerapan server.
- Tampilkan kode status HTTP yang disetel ke
Untuk integrasi Daftar Tunggu Reservasi, error logika bisnis tercantum dalam Kegagalan Logika Bisnis Daftar Tunggu dan error tersebut ditampilkan dalam respons HTTP. Error logika bisnis mungkin terjadi saat resource dibuat, misalnya saat Anda menangani metode CreateWaitlistEntry
. Contohnya termasuk, tetapi tidak terbatas pada, berikut ini:
ABOVE_MAX_PARTY_SIZE
digunakan jika entri daftar tunggu yang diminta melebihi jumlah tamu maksimum di penjual.MERCHANT_CLOSED
digunakan jika daftar tunggu tidak terbuka karena penjual sudah tutup.
Idempotensi
Komunikasi melalui jaringan tidak selalu dapat diandalkan dan Google dapat mencoba lagi permintaan HTTP jika tidak ada respons yang diterima. Karena alasan ini, semua metode yang mengubah status harus bersifat idempotent:
CreateWaitlistEntry
DeleteWaitlistEntry
Untuk setiap pesan permintaan kecuali DeleteWaitlistEntry
, token idempotency disertakan untuk mengidentifikasi permintaan secara unik. Hal ini memungkinkan Anda membedakan antara panggilan REST yang dicoba lagi, dengan maksud untuk membuat satu permintaan, dan dua permintaan terpisah.
DeleteWaitlistEntry
diidentifikasi secara unik oleh ID entri daftar tunggunya masing-masing, sehingga tidak ada token idempotency yang disertakan dalam permintaannya.
Berikut adalah beberapa contoh bagaimana server pemesanan menangani idempotency:
Respons HTTP
CreateWaitlistEntry
yang berhasil mencakup ID entri daftar tunggu yang dibuat. JikaCreateWaitlistEntryRequest
yang sama diterima untuk kedua kalinya (denganidempotency_token
yang sama),CreateWaitlistEntryResponse
yang sama harus ditampilkan. Tidak ada entri daftar tunggu kedua yang dibuat dan tidak ada error yang ditampilkan.Perhatikan bahwa jika percobaan
CreateWaitlistEntry
gagal dan permintaan yang sama dikirim ulang, dalam kasus ini backend Anda harus mencoba lagi.
Persyaratan idempotency berlaku untuk semua metode yang mengubah status.