Nhận thông báo đẩy về các thay đổi đối với dịch vụ tài khoản

Bạn có thể đăng ký nhận thông báo ACCOUNT_SERVICE_CHANGE để nhận cảnh báo theo thời gian thực khi các tài nguyên AccountService được tạo, cập nhật hoặc xoá. Điều này đặc biệt có giá trị đối với các nhà cung cấp bên thứ ba và doanh nghiệp quản lý mối quan hệ dịch vụ nhiều tài khoản.

Việc đăng ký nhận thông báo về các thay đổi đối với dịch vụ tài khoản cho phép bạn phát hiện ngay khi một dịch vụ tài khoản được đề xuất, phê duyệt, cập nhật hoặc xoá mà không cần thăm dò API.

Trước khi bắt đầu, hãy đảm bảo rằng URI gọi lại của bạn được định cấu hình theo các yêu cầu được mô tả trong phần Tổng quan về API phụ Thông báo.

Đăng ký nhận thông báo về các thay đổi đối với dịch vụ tài khoản

Để đăng ký nhận thông báo về các thay đổi đối với dịch vụ tài khoản, hãy gửi yêu cầu POST đến tài nguyên notificationsubscriptions với registeredEvent được đặt thành ACCOUNT_SERVICE_CHANGE.

Đăng ký cho một tài khoản mục tiêu cụ thể

Yêu cầu mẫu sau đây đăng ký nhận thông báo về các thay đổi đối với dịch vụ tài khoản cho một tài khoản nhà bán hàng cụ thể:

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "targetAccount": "accounts/{TARGETACCOUNT_ID}",
  "callBackUri": "https://example.com/callback"
}

Thay thế nội dung sau:

  • ACCOUNT_ID: Giá trị nhận dạng của tài khoản sở hữu gói thuê bao và nhận thông báo.
  • TARGETACCOUNT_ID: Giá trị nhận dạng của tài khoản mà bạn muốn nhận thông báo.

Đăng ký cho tất cả tài khoản được quản lý

Các nhà cung cấp và doanh nghiệp quản lý nhiều tài khoản người bán có thể đăng ký nhận thông báo về các thay đổi đối với dịch vụ tài khoản trên tất cả các tài khoản được quản lý bằng cách đặt allManagedAccounts: true:

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

Các lệnh gọi thành công sẽ trả về một giá trị nhận dạng name cho gói thuê bao của bạn, bao gồm cả mã nhận dạng riêng biệt của gói thuê bao:

{
  "name":"accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}",
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

Giải mã tải trọng thay đổi dịch vụ tài khoản

Khi có thay đổi về dịch vụ tài khoản, URI lệnh gọi lại của bạn sẽ nhận được một thông báo được mã hoá base64. Khi được giải mã, tải trọng sẽ tuân theo định dạng ResourceChangeMessage:

{
  "account": "accounts/{TARGETACCOUNT_ID}",
  "managingAccount": "accounts/{ACCOUNT_ID}",
  "resourceType": "ACCOUNT_SERVICE",
  "resource": "accounts/{TARGETACCOUNT_ID}/services/{SERVICE_ID}",
  "operation": "CREATE",
  "eventTime": "2026-08-25T10:00:00Z"
}

Các trường và quy tắc tải trọng

  • account: Tài khoản mục tiêu sở hữu thực thể dịch vụ đã thay đổi (accounts/{merchant_id}).
  • managingAccount: Tài khoản quản lý tài khoản của người bán (accounts/{service_provider_id}).
  • resourceType: Loại tài nguyên đã thay đổi (ACCOUNT_SERVICE).
  • resource: Tên đầy đủ của tài nguyên dịch vụ tài khoản (ví dụ: accounts/{account}/services/{service}).
  • operation: Thao tác được thực hiện trên tài nguyên:
    • CREATE: Mối quan hệ dịch vụ tài khoản mới đã được tạo.
    • UPDATE: Cấu hình dịch vụ tài khoản hiện có hoặc quyền đã thay đổi.
    • DELETE: Đã xoá mối quan hệ dịch vụ tài khoản.
  • eventTime: Dấu thời gian khi sự kiện được tạo. Hãy sử dụng dấu thời gian này để đảm bảo thứ tự chính xác của các sự kiện.

Thông báo thay đổi dịch vụ tài khoản thử nghiệm

Hãy sử dụng yêu cầu mẫu sau để kiểm thử xem điểm cuối gọi lại của bạn có nhận, xác nhận và giải mã đúng các thông báo thay đổi dịch vụ tài khoản hay không:

curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJBQ0NPVU5UX1NFUlZJQ0UiLAogICJyZXNvdXJjZSI6ICJhY2NvdW50cy8xMjM0L3NlcnZpY2VzLzEyMyIsCiAgIm9wZXJhdGlvbiI6ICJDUkVBVEUiLAogICJldmVudFRpbWUiOiAiMjAyNi0wOC0yNVQxMDowMDowMFoiCn0="}}'

Để phản hồi lệnh gọi này, URI gọi lại của bạn phải trả về một mã trạng thái HTTP chấp nhận được (chẳng hạn như 200 OK). Thông báo đã giải mã có nội dung sau:

{
  "account": "accounts/1234",
  "managingAccount": "accounts/5678",
  "resourceType": "ACCOUNT_SERVICE",
  "resource": "accounts/1234/services/123",
  "operation": "CREATE",
  "eventTime": "2026-08-25T10:00:00Z"
}