Bạn có thể sử dụng API phụ Thông báo để nhận thông báo đẩy khi dữ liệu thay đổi trong tài khoản Merchant Center. Thay vì định kỳ thăm dò API để phát hiện các thay đổi, bạn có thể đăng ký nguồn cấp dữ liệu sự kiện theo thời gian thực được gửi trực tiếp đến một điểm cuối HTTPS mà bạn định cấu hình.
API phụ Thông báo hỗ trợ thông báo cho:
- Các thay đổi về trạng thái sản phẩm: Nhận thông báo theo thời gian thực khi trạng thái phê duyệt của một sản phẩm thay đổi (ví dụ: khi một sản phẩm bị từ chối hoặc được phê duyệt) trên bất kỳ tài khoản hoặc tài khoản phụ nào mà bạn đã liên kết.
- Thay đổi về dịch vụ tài khoản: Nhận thông báo theo thời gian thực khi một tài nguyên
AccountServiceđược tạo, cập nhật hoặc xoá (chẳng hạn như khi mối quan hệ dịch vụ tài khoản được thiết lập, sửa đổi hoặc xoá).
Điều kiện tiên quyết và cách thiết lập URI gọi lại
Để nhận thông báo đẩy, bạn phải cung cấp một callBackUri. URI gọi lại của bạn phải đáp ứng các yêu cầu sau:
- Phải là một địa chỉ HTTPS có thể truy cập công khai và có chứng chỉ SSL hợp lệ do một tổ chức phát hành chứng chỉ uy tín ký.
- Phải chấp nhận các yêu cầu HTTP
POSTcó tiêu đềContent-Typeđược đặt thànhapplication/json. Phải trả về một trong các mã trạng thái HTTP sau đây để xác nhận rằng bạn đã nhận được thông báo:
102200201202204
Bạn có thể sử dụng cùng một URI gọi lại cho nhiều lượt đăng ký. Để giảm thiểu tải trên một điểm cuối, hãy sử dụng một URI gọi lại riêng biệt cho mỗi tài khoản nâng cao và loại sự kiện.
Quản lý gói thuê bao
API phụ Thông báo cung cấp các phương thức để tạo, liệt kê, truy xuất, cập nhật và xoá cấu hình thông báo.
Tạo gói thuê bao
Việc tạo lượt đăng ký dành riêng cho loại sự kiện mà bạn muốn nhận. Mỗi loại sự kiện yêu cầu các trường cấu hình khác nhau và cung cấp các cấu trúc tải trọng riêng biệt.
Để tìm hiểu cách tạo gói thuê bao và xem các yêu cầu mẫu cho từng loại sự kiện, hãy xem các hướng dẫn tương ứng:
- Đăng ký nhận thông tin về các thay đổi về trạng thái sản phẩm
- Đăng ký nhận thông tin về các thay đổi đối với dịch vụ tài khoản
Danh sách gói thuê bao
Để liệt kê tất cả các lượt đăng ký nhận thông báo cho một tài khoản, hãy gửi yêu cầu GET đến tập hợp notificationsubscriptions:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Lấy gói thuê bao
Để biết thông tin chi tiết về một gói thuê bao cụ thể, hãy sử dụng tên tài nguyên của gói thuê bao đó:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Cập nhật gói thuê bao
Để cập nhật URI gọi lại cho một thuê bao hiện có, hãy gửi yêu cầu PATCH có update_mask chỉ định các trường cần cập nhật:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Xoá gói thuê bao
Để ngừng nhận thông báo, hãy xoá kênh bạn đã đăng ký:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Giải mã thông báo
Khi một sự kiện xảy ra, Google sẽ gửi thông báo đến callBackUri mà bạn đã đăng ký. Thông báo đẩy sẽ xuất hiện trong một phong bì JSON có tải trọng data được mã hoá bằng base64:
{"message":{"data":"{base64_encoded_string}"}}
Giải mã chuỗi dữ liệu để truy cập vào tải trọng sự kiện JSON. Bộ điều khiển Spring Boot mẫu sau đây cho thấy cách nhận và giải mã thông báo đẩy:
@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
}
}
Các bước tiếp theo
Để định cấu hình gói thuê bao và xử lý tải trọng đã giải mã cho các sự kiện cụ thể, hãy xem:
- Nhận thông báo đẩy về các thay đổi đối với trạng thái sản phẩm: Tìm hiểu cách đăng ký nhận thông tin cập nhật về việc phê duyệt và từ chối sản phẩm, đồng thời phân tích cú pháp tải trọng
ProductStatusChangeMessage. - Nhận thông báo đẩy về các thay đổi đối với dịch vụ tài khoản: Tìm hiểu cách đăng ký nhận thông tin cập nhật về mối quan hệ tài khoản và phân tích tải trọng
ResourceChangeMessage.