راهنمای مرجع اطلاعیه‌های توسعه‌دهنده در زمان واقعی

این سند انواع اعلان‌های توسعه‌دهنده‌ی بلادرنگ (Real-time) را که می‌توانید از گوگل پلی دریافت کنید، فهرست و شرح می‌دهد.

رمزگذاری

هر انتشاری که در یک موضوع Cloud Pub/Sub انجام می‌شود، شامل یک فیلد داده کدگذاری شده با base64 است.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

پس از رمزگشایی فیلد داده کدگذاری شده با base64، DeveloperNotification شامل فیلدهای زیر خواهد بود:

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

این فیلدها در جدول زیر شرح داده شده‌اند.

نام ملک ارزش توضیحات
نسخه رشته نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است.
نام بسته رشته نام بسته‌ی برنامه‌ای که این اعلان به آن مربوط می‌شود (برای مثال، `com.some.thing`).
رویدادزمانمیلس طولانی مهر زمانی که رویداد رخ داده است، بر حسب میلی‌ثانیه از زمان شروع.
اعلان اشتراک اعلان اشتراک اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک اشتراک است و این فیلد حاوی اطلاعات اضافی مربوط به اشتراک است. توجه داشته باشید که این فیلد با oneTimeProductNotification، voidedPurchaseNotification و testNotification ناسازگار است.
اعلان یک‌باره محصول اعلان محصول یکبار مصرف اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک خرید یکباره است و این فیلد حاوی اطلاعات اضافی مربوط به خرید است. توجه داشته باشید که این فیلد با subscriptionNotification، voidedPurchaseNotification و testNotification ناسازگار است.
اعلان خرید باطل‌شده اعلان خرید باطل‌شده اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک خرید باطل شده است و این فیلد حاوی اطلاعات اضافی مربوط به خرید باطل شده است. توجه داشته باشید که این فیلد با oneTimeProductNotification، subscriptionNotification و testNotification ناسازگار است.
اعلان تست اعلان تست اگر این فیلد وجود داشته باشد، این اعلان مربوط به انتشار آزمایشی است. این اعلان‌ها فقط از طریق کنسول توسعه‌دهندگان گوگل پلی ارسال می‌شوند. توجه داشته باشید که این فیلد با oneTimeProductNotification، subscriptionNotification و voidedPurchaseNotification ناسازگار است.

اعلان اشتراک

یک SubscriptionNotification شامل فیلدهای زیر است:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string
}
نام ملک ارزش توضیحات
نسخه رشته نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است.
نوع اعلان عدد صحیح نوع اعلان (notificationType) برای یک اشتراک می‌تواند مقادیر زیر را داشته باشد:
  • (1) SUBSCRIPTION_RECOVERED - اشتراک از حالت تعلیق حساب بازیابی شد یا از حالت مکث از سر گرفته شد.
  • (2) SUBSCRIPTION_RENEWED - اشتراک فعال تمدید شد.
  • (3) SUBSCRIPTION_CANCELED - اشتراک به صورت داوطلبانه یا غیرداوطلبانه لغو شده است. برای لغو داوطلبانه، زمانی ارسال می‌شود که کاربر اشتراک را لغو می‌کند.
  • (4) SUBSCRIPTION_PURCHASED - اشتراک جدیدی خریداری شد.
  • (5) SUBSCRIPTION_ON_HOLD - اشتراک وارد حساب کاربری شده است (در صورت فعال بودن).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - اشتراک وارد دوره مهلت شده است (در صورت فعال بودن).
  • (7) SUBSCRIPTION_RESTARTED - کاربر اشتراک خود را از Play > Account > Subscriptions بازیابی کرده است. اشتراک لغو شده بود اما هنگام بازیابی کاربر هنوز منقضی نشده بود. برای اطلاعات بیشتر، به Restorations مراجعه کنید.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (منسوخ شده) - تغییر قیمت اشتراک با موفقیت توسط کاربر تأیید شده است.
  • (9) SUBSCRIPTION_DEFERRED - زمان تکرار اشتراک تمدید شده است.
  • (10) SUBSCRIPTION_PAUSED - اشتراک متوقف شده است.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - برنامه‌ی مکث اشتراک تغییر کرده است.
  • (12) SUBSCRIPTION_REVOKED - اشتراک قبل از زمان انقضا از کاربر لغو شده است.
  • (13) SUBSCRIPTION_EXPIRED - اشتراک منقضی شده است.
  • (17) SUBSCRIPTION_ITEMS_CHANGED - یک مورد در بسته اشتراک تغییر کرده است.
  • (18) SUBSCRIPTION_CANCELLATION_SCHEDULED - لغو اشتراک اقساطی برای پایان دوره تعهد برنامه‌ریزی شده است.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED - جزئیات تغییر قیمت یک کالای اشتراکی به‌روزرسانی می‌شود.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - تراکنش در حال انتظار اشتراک لغو شده است.
  • (22) SUBSCRIPTION_PRICE_STEP_UP_CONSENT_UPDATED - دوره رضایت اشتراک برای افزایش قیمت آغاز شده است یا کاربر رضایت خود را برای افزایش قیمت اعلام کرده است. این RTDN فقط برای اشتراک‌هایی در منطقه‌ای که افزایش قیمت الزامی است، ارسال می‌شود.
خرید توکن رشته توکنی که هنگام خرید اشتراک به دستگاه کاربر ارائه شده است.

مثال

در اینجا مثالی از اعلان برای خرید اشتراک جدید آورده شده است:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN"
  }
}

اعلان محصول یکبار مصرف

یک OneTimeProductNotification شامل فیلدهای زیر است:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
نام ملک ارزش توضیحات
نسخه رشته نسخه این اعلان. در ابتدا، این "1.0" خواهد بود. این نسخه با سایر فیلدهای نسخه متفاوت است.
نوع اعلان عدد صحیح نوع اعلان. می‌تواند مقادیر زیر را داشته باشد:
  • (1) یک‌بار خرید محصول - یک محصول یکبار خرید توسط کاربر با موفقیت خریداری شد.
  • (2) ONE_TIME_PRODUCT_CANCELED - خرید یک محصول یکبار مصرف که در انتظار انجام بود، توسط کاربر لغو شده است.
خرید توکن رشته توکنی که هنگام خرید به دستگاه کاربر ارائه شده است.
اسکو رشته شناسه محصول یکبار مصرف خریداری شده (برای مثال، "sword_001")

مثال

در اینجا مثالی از اعلان برای خرید جدید یک‌باره آورده شده است:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

اعلان خرید باطل‌شده

یک VoidedPurchaseNotification شامل فیلدهای زیر است:

نام ملک

ارزش

توضیحات

purchaseToken

string

توکن مرتبط با خریدی که لغو شده است. این اطلاعات زمانی که خرید جدیدی انجام می‌شود، در اختیار توسعه‌دهنده قرار می‌گیرد.

orderId

string

شناسه سفارش منحصر به فرد مرتبط با تراکنشی که لغو شده است. برای خریدهای یک‌باره، این تنها شناسه سفارش تولید شده برای آن خرید را نشان می‌دهد. برای اشتراک‌های تمدید خودکار، برای هر تراکنش تمدید، یک شناسه سفارش جدید ایجاد می‌شود.

productType

int

productType برای یک خرید باطل شده می‌تواند مقادیر زیر را داشته باشد:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - خرید اشتراک لغو شده است.
  • (2) PRODUCT_TYPE_ONE_TIME - خریدی که فقط یک بار انجام شده بود، باطل شده است.

refundType

int

نوع refundType برای خرید باطل شده می‌تواند مقادیر زیر را داشته باشد:

  • (1) REFUND_TYPE_FULL_REFUND - خرید به طور کامل لغو شده است.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND - خرید تا حدی با بازپرداخت جزئی مبتنی بر تعداد، که فقط برای خریدهای چند مقداری قابل اجرا است، لغو شده است. یک خرید می‌تواند چندین بار تا حدی لغو شود.

توجه داشته باشید وقتی مبلغ کل باقیمانده از خرید چند مقداری بازپرداخت می‌شود، نوع refundType REFUND_TYPE_FULL_REFUND خواهد بود.

مثال

در اینجا مثالی از اعلان برای یک خرید جدید لغو شده آورده شده است:

{
  "version":"1.0",
  "packageName":"com.some.app",
  "eventTimeMillis":"1503349566168",
  "voidedPurchaseNotification":
  {
    "purchaseToken":"PURCHASE_TOKEN",
    "orderId":"GS.0000-0000-0000",
    "productType":1
    "refundType":1
  }
}

مصرف VoidedPurchaseNotification

وقتی کلاینت RTDN شما یک VoidedPurchaseNotification دریافت می‌کند، اطلاعات زیر را یادداشت کنید:

  • packageName : برنامه را شناسایی می‌کند.
  • eventTimeMillis : زمان تغییر وضعیت را به شما اطلاع می‌دهد.
  • purchaseToken : توکنی که هنگام خرید محصول به دستگاه کاربر ارائه شده است.
  • orderId : ترتیب مرتبط با تراکنش باطل‌شده را مشخص می‌کند.
  • productType : نشان می‌دهد که آیا خرید لغو شده، خرید درون‌برنامه‌ای بوده یا اشتراک.
  • refundType : نوع بازپرداختی را که خرید را باطل کرده است، مشخص می‌کند.

اعلان تست

یک TestNotification شامل فیلدهای زیر است:

{
  "version": string
}
نام ملک ارزش توضیحات
نسخه رشته نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است.

مثال

در اینجا نمونه‌ای از یک اعلان آزمایشی را مشاهده می‌کنید:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}