يسرد هذا الموضوع أنواع الإشعارات في الوقت الفعلي الخاصة بالمطوّرين التي يمكنك تلقّيها من 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". يختلف هذا الإصدار عن حقول الإصدار الأخرى. |
packageName | سلسلة | اسم حزمة التطبيق المرتبط بهذا الإشعار (على سبيل المثال، com.some.thing). |
eventTimeMillis | طويلة | الطابع الزمني الذي حدث فيه الحدث، بالمللي ثانية منذ الحقبة |
subscriptionNotification | SubscriptionNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بأحد الاشتراكات، ويحتوي هذا الحقل على معلومات إضافية مرتبطة بالاشتراك. يُرجى العلم أنّ هذا الحقل يستبعد كلّ من oneTimeProductNotification وvoidedPurchaseNotification و testNotification. |
oneTimeProductNotification | OneTimeProductNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية شراء لمرة واحدة، ويحتوي هذا الحقل على معلومات إضافية مرتبطة بعملية الشراء. يُرجى العلم أنّ هذا الحقل يستبعد كلّ من subscriptionNotification وvoidedPurchaseNotification وtestNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بشراء تم إلغاؤه، ويحتوي هذا الحقل على معلومات إضافية مرتبطة بعملية الشراء التي تم إلغاؤها. يُرجى العِلم أنّ هذا الحقل يستبعد كلّ من oneTimeProductNotification وsubscriptionNotification و testNotification. |
testNotification | TestNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بمحاولة نشر تجريبية. ولا يتم إرسال هذه الرسائل إلا من خلال Google Play Developer Console. يُرجى العلم أنّ هذا الحقل يستبعد كلّ من oneTimeProductNotification وsubscriptionNotification و voidedPurchaseNotification. |
SubscriptionNotification
يحتوي SubscriptionNotification
على الحقول التالية:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
اسم الموقع | القيمة | الوصف |
إصدار | سلسلة | إصدار هذا الإشعار. في البداية، يكون هذا الإصدار هو "1.0". يختلف هذا الإصدار عن حقول الإصدار الأخرى. |
notificationType | تدخُّل دفاعي | يمكن أن يكون لـ notificationType الخاص بالاشتراك القيم التالية:
|
purchaseToken | سلسلة | الرمز المميّز الذي تم تقديمه لجهاز المستخدم عند شراء الاشتراك |
مثال
في ما يلي مثال على إشعار بشراء اشتراك جديد:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
OneTimeProductNotification
يحتوي OneTimeProductNotification
على الحقول التالية:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
اسم الموقع الإلكتروني | القيمة | الوصف |
إصدار | سلسلة | إصدار هذا الإشعار. في البداية، سيكون هذا الإصدار "1.0". يختلف هذا الإصدار عن حقول الإصدار الأخرى. |
notificationType | تدخُّل دفاعي | نوع الإشعار يمكن أن تتضمّن القيمة إحدى القيم التالية:
|
purchaseToken | سلسلة | الرمز المميّز الذي تم تقديمه لجهاز المستخدم عند إجراء عملية الشراء |
رمز التخزين التعريفي | سلسلة | معرّف المنتج الذي يتم تحصيل سعره مرة واحدة والذي تم شراؤه (على سبيل المثال، "sword_001") |
مثال
في ما يلي مثال على إشعار بعملية شراء جديدة لمرة واحدة:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
يحتوي VoidedPurchaseNotification
على الحقول التالية:
اسم الموقع الإلكتروني |
القيمة |
الوصف |
|
|
الرمز المميّز المرتبط بعملية الشراء التي تم إبطالها يتم تقديم هذه المعلومات للمطوّر عند حدوث عملية شراء جديدة. |
|
|
المعرّف الفريد للطلب المرتبط بالمعاملة التي تم إلغاؤها. بالنسبة إلى عمليات الشراء لمرة واحدة، يمثّل هذا المعرّف الوحيد الذي تم إنشاؤه للطلب. بالنسبة إلى الاشتراكات التي يتم تجديدها تلقائيًا، يتم إنشاء معرّف طلب جديد لكل معاملة تجديد. |
|
|
يمكن أن يكون
|
|
|
يمكن أن يكون
يُرجى العلم أنّه عند ردّ الأموال المدفوعة في عملية شراء متعددة الكميات
، سيتم |
مثال
في ما يلي مثال على إشعار بعملية شراء جديدة تم إلغاؤها:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
Consuming VoidedPurchaseNotification
عندما يتلقّى عميل RTDN رسالة VoidedPurchaseNotification
، يُرجى مراعاة
المعلومات التالية:
-
packageName
: يحدِّد هذا العنصر التطبيق. eventTimeMillis
: يُعلم هذا المطوِّر بوقت حدوث التغيُّر في الحالة.purchaseToken
: الرمز المميّز الذي تم تقديمه لجهاز المستخدم عند شراء المنتج-
orderId
: يحدِّد هذا الحقل الطلب المرتبط بالمعاملة التي تم إلغاؤها. productType
: يشير ذلك إلى ما إذا كانت عملية الشراء المُلغاة هي عملية شراء داخل التطبيق أو اشتراكًا.refundType
: يوضّح لك هذا الحقل نوع عملية ردّ الأموال التي أبطلت عملية الشراء.
إذا كان كل ما عليك فعله لتعديل الأذونات هو تحديد عملية الشراء والطلب الصحيحَين، ستكون لديك كل المعلومات التي تحتاجها في هذه المرحلة. للتعرّف على كيفية الحصول على معلومات إضافية عن عملية الشراء الملغاة، يمكنك الاطّلاع على Google Play Voided Purchases API، وهو نموذج سحب يقدّم بيانات إضافية عن عمليات الشراء الملغاة بين طابع زمني محدّد.
بالنسبة إلى عمليات الشراء التي تم إلغاؤها جزئيًا والتي تتضمّن عدة كميات، يحتوي الحقل refundableQuantity
الذي تقدّمه purchases.products
على باقي
عدد المنتجات التي تم شراؤها والتي لم يتم إلغاؤها.
TestNotification
يحتوي TestNotification
على الحقول التالية:
{
"version": string
}
اسم الموقع | القيمة | الوصف |
إصدار | سلسلة | إصدار هذا الإشعار. في البداية، يكون هذا الإصدار هو "1.0". يختلف هذا الإصدار عن حقول الإصدار الأخرى. |
مثال
في ما يلي مثال على إشعار اختباري:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}