คุณสามารถสมัครรับการแจ้งเตือนของ 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"
}