Tổng quan về API phụ Thông báo

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 POST có tiêu đề Content-Type được đặt thành application/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:

    • 102
    • 200
    • 201
    • 202
    • 204

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:

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 PATCHupdate_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: