Anda dapat menggunakan sub-API Notifikasi untuk menerima notifikasi push saat data berubah di akun Merchant Center Anda. Daripada melakukan polling API secara berkala untuk mendeteksi perubahan, Anda dapat berlangganan feed peristiwa real-time yang dikirim langsung ke endpoint HTTPS yang Anda konfigurasi.
Sub-API Notifications mendukung notifikasi untuk:
- Perubahan status produk: Menerima pemberitahuan real-time saat status persetujuan produk berubah (misalnya, saat produk tidak disetujui atau disetujui) di seluruh akun tertaut atau sub-akun Anda.
- Perubahan layanan akun:
Menerima pemberitahuan real-time saat resource
AccountServicedibuat, diperbarui, atau dihapus (seperti saat hubungan layanan akun dibuat, diubah, atau dihapus).
Prasyarat & penyiapan URI callback
Untuk menerima notifikasi push, Anda harus memberikan callBackUri. URI callback
Anda harus memenuhi persyaratan berikut:
- Harus berupa alamat HTTPS yang dapat diakses secara publik dengan sertifikat SSL valid yang ditandatangani oleh certificate authority yang diakui.
- Harus menerima permintaan HTTP
POSTdengan headerContent-Typeyang ditetapkan keapplication/json. Harus menampilkan salah satu kode status HTTP berikut untuk mengonfirmasi bahwa notifikasi telah diterima:
102200201202204
Anda dapat menggunakan URI callback yang sama untuk beberapa langganan. Untuk meminimalkan beban pada satu endpoint, gunakan URI callback unik per akun tingkat lanjut dan jenis peristiwa.
Kelola langganan
Sub-API Notifikasi menyediakan metode untuk membuat, mencantumkan, mengambil, memperbarui, dan menghapus konfigurasi notifikasi.
Membuat langganan
Pembuatan langganan khusus untuk jenis peristiwa yang ingin Anda terima. Setiap jenis peristiwa memerlukan kolom konfigurasi yang berbeda dan memberikan struktur payload yang berbeda.
Untuk mempelajari cara membuat langganan dan melihat contoh permintaan untuk setiap jenis peristiwa, lihat panduan masing-masing:
Mencantumkan langganan
Untuk mencantumkan semua langganan notifikasi untuk akun, kirim permintaan GET ke
koleksi notificationsubscriptions:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Mengambil langganan
Untuk mendapatkan detail langganan tertentu, gunakan nama resource langganan:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Memperbarui langganan
Untuk memperbarui URI callback untuk langganan yang ada, kirim permintaan PATCH
dengan update_mask yang menentukan kolom yang akan diperbarui:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Menghapus langganan
Untuk berhenti menerima notifikasi, hapus langganan:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Mendekode notifikasi
Saat peristiwa terjadi, Google akan mengirimkan notifikasi ke callBackUri Anda yang terdaftar. Notifikasi push tiba dalam amplop JSON dengan payload data berenkode base64:
{"message":{"data":"{base64_encoded_string}"}}
Dekode string data untuk mengakses payload peristiwa JSON. Pengontrol Spring Boot contoh berikut menunjukkan cara menerima dan mendekode notifikasi push:
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void handleNotification(@RequestBody String message) {
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
String encodedData = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
String decodedPayload = new String(decodedBytes);
// Process decodedPayload according to the registered event type
}
}
Langkah berikutnya
Untuk mengonfigurasi langganan dan menangani payload yang didekode untuk peristiwa tertentu, lihat:
- Mendapatkan notifikasi push untuk perubahan status produk:
Pelajari cara berlangganan pembaruan penolakan dan persetujuan produk serta mengurai payload
ProductStatusChangeMessage. - Mendapatkan notifikasi push untuk perubahan layanan akun:
Pelajari cara berlangganan pembaruan hubungan akun dan mengurai payload
ResourceChangeMessage.