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

این مبحث انواع اعلان‌های توسعه‌دهنده هم‌زمان را که می‌توانید از Google Play دریافت کنید، فهرست کرده و شرح می‌دهد.

رمزگذاری

هر انتشاری که در یک موضوع 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»).
eventTimeMillis طولانی مهر زمانی که رویداد رخ داده است، در میلی ثانیه از آن دوره.
اطلاعیه اشتراک اطلاعیه اشتراک اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک اشتراک است و این قسمت حاوی اطلاعات اضافی مربوط به اشتراک است. توجه داشته باشید که این فیلد با oneTimeProductNotification، voidedPurchaseNotification و testNotification منحصر به فرد است.
OneTimeProductNotification OneTimeProductNotification در صورت وجود این فیلد، این اعلان مربوط به خرید یکباره است و این قسمت حاوی اطلاعات تکمیلی مربوط به خرید است. توجه داشته باشید که این فیلد با subscriptionNotification، voidedPurchaseNotification و testNotification منحصر به فرد است.
voidedPurchase Notification VoidedPurchase Notification اگر این قسمت وجود داشته باشد، این اعلان مربوط به خرید باطل شده است و این قسمت حاوی اطلاعات اضافی مربوط به خرید باطل است. توجه داشته باشید که این فیلد با oneTimeProductNotification، subscriptionNotification و testNotification منحصر به فرد است.
test Notification Test Notification اگر این فیلد وجود داشته باشد، این اعلان مربوط به انتشار آزمایشی است. اینها فقط از طریق کنسول برنامه‌نویس Google Play ارسال می‌شوند. توجه داشته باشید که این فیلد با oneTimeProductNotification، subscriptionNotification و voidedPurchaseNotification منحصر به فرد است.

اطلاعیه اشتراک

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

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": 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 > حساب > اشتراک ها بازیابی کرده است. اشتراک لغو شد اما هنوز منقضی نشده بود که کاربر بازیابی کرد. برای اطلاعات بیشتر، Restorations را ببینید.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - تغییر قیمت اشتراک با موفقیت توسط کاربر تأیید شد.
  • (9) SUBSCRIPTION_DEFERRED - زمان تکرار اشتراک تمدید شده است.
  • (10) SUBSCRIPTION_PAUSED - یک اشتراک متوقف شده است.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - برنامه توقف اشتراک تغییر کرده است.
  • (12) SUBSCRIPTION_REVOKED - یک اشتراک قبل از زمان انقضا از کاربر لغو شده است.
  • (13) SUBSCRIPTION_EXPIRED - یک اشتراک منقضی شده است.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED - تراکنش معلق یک اشتراک لغو شده است.
خرید توکن رشته رمز ارائه شده به دستگاه کاربر هنگام خرید اشتراک.
شناسه اشتراک رشته شناسه محصول اشتراک خریداری شده (به عنوان مثال، "monthly001").

مثال

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

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

OneTimeProductNotification

OneTimeProductNotification حاوی فیلدهای زیر است:

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

مثال

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

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

VoidedPurchase Notification

یک 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
  }
}

در حال مصرف VoidedPurchase Notification

هنگامی که مشتری RTDN شما یک VoidedPurchaseNotification دریافت می کند، به اطلاعات زیر توجه کنید:

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

اگر تنها کاری که برای تعدیل استحقاق باید انجام دهید این است که خرید و سفارش مناسب را پیدا کنید، در این مرحله تمام اطلاعات مورد نیاز خود را دارید. برای یادگیری نحوه دریافت اطلاعات اضافی درباره خرید باطل شده، API خریدهای باطل شده Google Play را بررسی کنید، که یک مدل کششی است که داده‌های اضافی را برای خریدهای باطل شده بین یک مُهر زمانی مشخص ارائه می‌کند.

برای خریدهای چند مقداری که تا حدی باطل شده اند، فیلد refundableQuantity ارائه شده توسط purchases.products شامل تعداد باقیمانده محصولات خریداری شده است که باطل نشده اند.

Test Notification

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

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

مثال

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

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