الدليل المرجعي لإشعارات المطوِّرين في الوقت الفعلي

يسرد هذا الموضوع ويوضّح أنواع إشعارات المطوّرين في الوقت الفعلي التي يمكنك تلقّيها من 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 وignoreedPurchaseNotification وtestNotification.
إشعار oneTimeProduct إشعار المنتج OneTime إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية شراء لمرة واحدة، وسيتضمّن هذا الحقل معلومات إضافية متعلّقة بعملية الشراء. تجدر الإشارة إلى أنّ هذا الحقل حصريّ لكل منهما، ومزوّدة إشعار بـ subscriptionint و للمشتركين الداعمين و"testNotification".
إشعار بتم إبطال عملية الشراء إشعار مُلغى عند الشراء إذا كان هذا الحقل متوفرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية شراء ملغية، ويحتوي هذا الحقل على معلومات إضافية متعلّقة بعملية الشراء المُلغاة. تجدر الإشارة إلى أنّ هذا الحقل حصريّ لكل منهما، مع oneTimeProductNotification وsubscription Notification وtestNotification.
إشعار تجريبي إشعار الاختبار إذا كان هذا الحقل متاحًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية نشر تجريبية. ولا يتم إرسالها إلا من خلال Google Play Console. تجدر الإشارة إلى أنّ هذا الحقل حصريّ لكل منهما في الحالات التالية: oneTimeProductNotification وsubscription Notification و آلية purchaseNotification.

إشعار الاشتراك

يحتوي SubscriptionNotification على الحقول التالية:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
اسم الموقع القيمة الوصف
إصدار سلسلة إصدار هذا الإشعار. في البداية، يكون الرقم "1.0". ويختلف هذا الإصدار عن حقول الإصدار الأخرى.
نوع الإشعار تدخُّل دفاعي يمكن أن يشتمل نوع notificationsType على الاشتراك على القيم التالية:
  • (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 > الحساب > الاشتراكات. تم إلغاء الاشتراك ولكن لم تنتهِ صلاحيته بعد عند استعادة المستخدم الاشتراك. لمزيد من المعلومات، يمكنك الاطّلاع على استعادة البيانات.
  • (8) SUBSCRIPTION_PRICE_CHANGE_ الجهات - أكّد المستخدم تغيير سعر الاشتراك بنجاح.
  • (9) SUBSCRIPTION_DEFERRED - تم تمديد وقت تكرار الاشتراك.
  • (10) SUBSCRIPTION_PAUSED - تم إيقاف اشتراك مؤقتًا.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - تم تغيير جدول زمني لإيقاف الاشتراك مؤقتًا.
  • (12) SUBSCRIPTION_REVOKED - تم إبطال اشتراك من المستخدم قبل وقت انتهاء الصلاحية.
  • (13) SUBSCRIPTION_EXPIRED - انتهت صلاحية الاشتراك.
رمز الشراء المميّز سلسلة الرمز المميّز الذي تم تقديمه إلى جهاز المستخدم عند شراء الاشتراك
رقم تعريف الاشتراك سلسلة معرّف المنتج للاشتراك الذي تم شراؤه (على سبيل المثال، "الشهر001").

مثال

في ما يلي مثال على إشعار بشأن عملية شراء اشتراك جديد:

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

إشعار المنتج OneTime

يحتوي OneTimeProductNotification على الحقول التالية:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
اسم الموقع القيمة الوصف
إصدار سلسلة إصدار هذا الإشعار. في البداية، ستكون "1.0". ويختلف هذا الإصدار عن حقول الإصدار الأخرى.
نوع الإشعار تدخُّل دفاعي نوع الإشعار. ويمكن أن تتضمّن القيم التالية:
  • (1) ONE_TIME_PRODUCT_PURCHASED - تم شراء منتج لمرة واحدة من قبل مستخدم بنجاح.
  • (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
  }
}

استخدام إشعار مُلغى عمليات الشراء

عندما يتلقّى عميل RTDN : VoidedPurchaseNotification، يُرجى ملاحظة المعلومات التالية:

  • packageName: يحدد التطبيق.
  • eventTimeMillis: تُعلِم هذه السمة المطوّر بوقت حدوث التغيير في الحالة.
  • purchaseToken: الرمز المميّز الذي تم تقديمه إلى جهاز المستخدم عند شراء المنتج
  • orderId: يحدّد الطلب المرتبط بالمعاملة التي تم إبطالها.
  • productType: يُعلمك هذا الحقل بما إذا كانت عملية الشراء المُلغاة قد كانت عملية شراء داخل التطبيق أو اشتراكًا.
  • refundType: يوضّح هذا الحقل نوع ردّ الأموال التي أدّت إلى إلغاء عملية الشراء.

إذا كان كل ما عليك فعله لتعديلات الاستحقاق هو تحديد موقع عملية الشراء والطلب المناسبين، ستكون لديك جميع المعلومات التي تحتاجها في هذه المرحلة. للتعرف على كيفية الحصول على معلومات إضافية حول عملية الشراء المُلغاة، يرجى مراجعة واجهة برمجة التطبيقات لعمليات الشراء الملغاة في Google Play، وهي عبارة عن نموذج سحب يوفر بيانات إضافية لعمليات الشراء الملغاة بين طابع زمني محدد.

بالنسبة إلى عمليات الشراء المتعدّدة الكميات التي تم إبطالها جزئيًا، يحتوي الحقل refundableQuantity المتوفّر من خلال purchases.products على العدد المتبقي من المنتجات المشتراة التي لم يتم إلغاؤها.

إشعار الاختبار

يحتوي TestNotification على الحقول التالية:

{
  "version": string
}
اسم الموقع القيمة الوصف
إصدار سلسلة إصدار هذا الإشعار. في البداية، يكون الرقم "1.0". ويختلف هذا الإصدار عن حقول الإصدار الأخرى.

مثال

في ما يلي مثال على إشعار تجريبي:

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