รับการแจ้งเตือนแบบพุชสำหรับการเปลี่ยนแปลงบริการของบัญชี

คุณสามารถสมัครรับการแจ้งเตือนของ ACCOUNT_SERVICE_CHANGE เพื่อรับการแจ้งเตือนแบบเรียลไทม์เมื่อมีการสร้าง อัปเดต หรือลบทรัพยากร AccountService ซึ่งมีประโยชน์อย่างยิ่งสำหรับผู้ให้บริการบุคคลที่สามและธุรกิจที่จัดการความสัมพันธ์ด้านบริการแบบหลายบัญชี

การสมัครรับการเปลี่ยนแปลงบริการบัญชีช่วยให้คุณตรวจพบได้ทันทีเมื่อมีการเสนอ อนุมัติ อัปเดต หรือนำบริการบัญชีออก โดยไม่ต้องทำการสำรวจ API

ก่อนเริ่มต้น โปรดตรวจสอบว่าได้กำหนดค่า URI Callback ตามข้อกำหนดที่อธิบายไว้ในภาพรวมของ API ย่อยสำหรับการแจ้งเตือนแล้ว

สมัครรับข้อมูลการเปลี่ยนแปลงบริการของบัญชี

หากต้องการสมัครรับข้อมูลการเปลี่ยนแปลงบริการของบัญชี ให้ส่งคำขอ POST ไปยังทรัพยากร notificationsubscriptions โดยตั้งค่า registeredEvent เป็น ACCOUNT_SERVICE_CHANGE

สมัครใช้บริการสำหรับบัญชีเป้าหมายที่เฉพาะเจาะจง

ตัวอย่างคำขอต่อไปนี้จะสมัครรับข้อมูลการเปลี่ยนแปลงบริการบัญชีสำหรับบัญชีผู้ขายที่เฉพาะเจาะจง

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

แทนที่ค่าต่อไปนี้

  • ACCOUNT_ID: ตัวระบุของบัญชีที่เป็นเจ้าของการสมัครใช้บริการและรับการแจ้งเตือน
  • TARGETACCOUNT_ID: ตัวระบุของบัญชีที่คุณต้องการรับการแจ้งเตือน

สมัครใช้บริการสำหรับบัญชีที่จัดการทั้งหมด

ผู้ให้บริการและธุรกิจที่จัดการบัญชีผู้ขายหลายบัญชีสามารถสมัครรับการเปลี่ยนแปลงบริการบัญชีในบัญชีที่จัดการทั้งหมดได้โดยตั้งค่า allManagedAccounts: true ดังนี้

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

การเรียกที่สำเร็จจะแสดงผลตัวระบุ name สำหรับการสมัครใช้บริการ ซึ่งรวมถึงรหัสการสมัครใช้บริการที่ไม่ซ้ำกัน ดังนี้

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

ถอดรหัสเพย์โหลดการเปลี่ยนแปลงบริการบัญชี

เมื่อมีการเปลี่ยนแปลงบริการของบัญชี URI Callback จะได้รับข้อความที่เข้ารหัส Base64 เมื่อถอดรหัสแล้ว เพย์โหลดจะเป็นไปตามรูปแบบ 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"
}

ฟิลด์และกฎของเพย์โหลด

  • account: บัญชีเป้าหมายที่เป็นเจ้าของเอนทิตีบริการที่เปลี่ยนแปลง (accounts/{merchant_id})
  • managingAccount: บัญชีที่จัดการบัญชีของผู้ขาย (accounts/{service_provider_id})
  • resourceType: ประเภททรัพยากรที่มีการเปลี่ยนแปลง (ACCOUNT_SERVICE)
  • resource: ชื่อทรัพยากรแบบเต็มของบริการบัญชี (เช่น accounts/{account}/services/{service})
  • operation: การดำเนินการที่ทำกับทรัพยากร
    • CREATE: สร้างความสัมพันธ์ของบริการบัญชีใหม่แล้ว
    • UPDATE: มีการเปลี่ยนแปลงการกำหนดค่าหรือสิทธิ์ของบริการบัญชีที่มีอยู่
    • DELETE: นำความสัมพันธ์ของบริการบัญชีออกแล้ว
  • eventTime: การประทับเวลาเมื่อสร้างเหตุการณ์ ใช้การประทับเวลานี้เพื่อตรวจสอบว่าเหตุการณ์ต่างๆ มีการจัดลำดับอย่างถูกต้อง

ทดสอบการแจ้งเตือนการเปลี่ยนแปลงบริการของบัญชี

ใช้คำขอตัวอย่างต่อไปนี้เพื่อทดสอบว่าปลายทาง Callback ได้รับ รับทราบ และถอดรหัสข้อความการเปลี่ยนแปลงบริการของบัญชีอย่างถูกต้องหรือไม่

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

ในการตอบสนองต่อการเรียกนี้ URI Callback ควรแสดงรหัสสถานะ HTTP ที่ยอมรับได้ (เช่น 200 OK) ข้อความที่ถอดรหัสแล้วจะมีเนื้อหาต่อไปนี้

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