شما میتوانید در اعلانهای ACCOUNT_SERVICE_CHANGE مشترک شوید تا هنگام ایجاد، بهروزرسانی یا حذف منابع AccountService هشدارهای بلادرنگ دریافت کنید. این امر بهویژه برای ارائهدهندگان شخص ثالث و کسبوکارهایی که روابط خدماتی چند حسابی را مدیریت میکنند، ارزشمند است.
اشتراک در تغییرات سرویس حساب به شما امکان میدهد بدون نیاز به نظرسنجی از API، فوراً تشخیص دهید که چه زمانی یک سرویس حساب پیشنهاد، تأیید، بهروزرسانی یا حذف میشود.
قبل از شروع، مطمئن شوید که آدرس URL مربوط به فراخوانی شما مطابق با الزامات شرح داده شده در بخش «مرور اجمالی 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 فراخوانی شما یک پیام کدگذاری شده با 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"
}
فیلدها و قوانین مربوط به Payload
-
account: حساب هدفی که مالک موجودیت سرویس تغییر یافته (accounts/{merchant_id}) است. -
managingAccount: حسابی که حساب فروشنده (accounts/{service_provider_id}) را مدیریت میکند. -
resourceType: نوع منبعی که تغییر کرده است (ACCOUNT_SERVICE). -
resource: نام کامل منبع سرویس حساب (برای مثال،accounts/{account}/services/{service}). -
operation: عملیاتی که روی منبع انجام میشود:-
CREATE: یک رابطه سرویس حساب جدید ایجاد شد. -
UPDATE: پیکربندی یا مجوز سرویس حساب کاربری موجود تغییر کرد. -
DELETE: یک رابطه سرویس حساب حذف شد.
-
-
eventTime: نشانگر زمانی که رویداد ایجاد شده است. از این نشانگر زمانی برای اطمینان از ترتیب صحیح رویدادها استفاده کنید.
اعلانهای تغییر سرویس حساب آزمایشی
از نمونه درخواست زیر برای آزمایش اینکه آیا نقطه پایانی فراخوانی شما پیامهای تغییر سرویس حساب را به درستی دریافت، تأیید و رمزگشایی میکند، استفاده کنید:
curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJBQ0NPVU5UX1NFUlZJQ0UiLAogICJyZXNvdXJjZSI6ICJhY2NvdW50cy8xMjM0L3NlcnZpY2VzLzEyMyIsCiAgIm9wZXJhdGlvbiI6ICJDUkVBVEUiLAogICJldmVudFRpbWUiOiAiMjAyNi0wOC0yNVQxMDowMDowMFoiCn0="}}' در پاسخ به این فراخوانی، URI فراخوانی شما باید یک کد وضعیت 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"
}