يسرد هذا المستند أنواع الإشعارات في الوقت الفعلي الخاصة بالمطوّرين التي يمكنك تلقّيها من 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,
"pendingRefundReviewNotification": PendingRefundReviewNotification,
"testNotification": TestNotification
}
يتم وصف هذه الحقول في الجدول التالي.
| اسم الموقع | القيمة | الوصف |
|---|---|---|
| الإصدار | سلسلة | نسخة هذا الإشعار في البداية، تكون هذه النسخة "1.0". تختلف هذه النسخة عن حقول النسخ الأخرى. |
| packageName | سلسلة | اسم حزمة التطبيق الذي يرتبط به هذا الإشعار به (مثل `com.some.thing`) |
| eventTimeMillis | طويلة | الطابع الزمني لوقوع الحدث، بالملّي ثانية منذ بداية الحقبة الزمنية |
| subscriptionNotification | SubscriptionNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط باشتراك، ويحتوي هذا الحقل على معلومات إضافية ذات صلة بالاشتراك. يُرجى العِلم أنّ هذا الحقل لا يمكن أن يتوفّر مع pendingRefundReviewNotification وoneTimeProductNotification و voidedPurchaseNotification وtestNotification. |
| oneTimeProductNotification | OneTimeProductNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية شراء يتم تحصيل سعرها مرة واحدة، ويحتوي هذا الحقل على معلومات إضافية ذات صلة بعملية الشراء. يُرجى العِلم أنّ هذا الحقل لا يمكن أن يتوفّر مع pendingRefundReviewNotification وsubscriptionNotification وvoidedPurchaseNotification وtestNotification. |
| voidedPurchaseNotification | VoidedPurchaseNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية شراء تم إبطالها، ويحتوي هذا الحقل على معلومات إضافية ذات صلة بعملية الشراء التي تم إبطالها. يُرجى العِلم أنّ هذا الحقل لا يمكن أن يتوفّر مع pendingRefundReviewNotification وoneTimeProductNotification وsubscriptionNotification وtestNotification. |
| pendingRefundReviewNotification | PendingRefundReviewNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بـ طلب ردّ الأموال الذي يمكنك اقتراح حلّ له. يمكنك الردّ على هذا الإشعار من خلال استدعاء واجهة برمجة التطبيقات `ReviewRefund`. يُرجى العِلم أنّ هذا الحقل لا يمكن أن يتوفّر مع subscriptionNotification و oneTimeProductNotification وvoidedPurchaseNotification و testNotification. |
| testNotification | TestNotification | إذا كان هذا الحقل متوفّرًا، يعني ذلك أنّ هذا الإشعار مرتبط بعملية نشر تجريبية. لا يتم إرسال هذه الإشعارات إلا من خلال Google Play Developer Console. يُرجى العِلم أنّ هذا الحقل لا يمكن أن يتوفّر مع pendingRefundReviewNotification و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 | سلسلة | الرمز المميّز الذي تم تقديمه إلى جهاز المستخدم عند إجراء عملية الشراء |
| sku | سلسلة | معرّف المنتج الذي يتم تحصيل سعره مرة واحدة والذي تم شراؤه (مثل "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
}
}
استخدام VoidedPurchaseNotification
عندما يتلقّى عميل الإشعارات في الوقت الفعلي الخاصة بالمطوّرين إشعار VoidedPurchaseNotification، يُرجى العِلم بالمعلومات التالية:
packageName: يحدّد التطبيق.eventTimeMillis: يُعلمك بالوقت الذي حدث فيه تغيير الحالة.purchaseToken: الرمز المميّز الذي تم تقديمه إلى جهاز المستخدم عند شراء المنتجorderId: يحدّد الطلب المرتبط بالمعاملة التي تم إبطالها.productType: يشير إلى ما إذا كانت عملية الشراء التي تم إبطالها هي عملية شراء داخل التطبيق أو اشتراك.refundType: يحدّد نوع ردّ الأموال الذي أدى إلى إبطال عملية الشراء.
PendingRefundReviewNotification
يتم إرسال PendingRefundReviewNotification عندما يطلب المستخدم ردّ الأموال لعملية شراء، ويتطلّب الطلب مراجعة المطوّر. عند تلقّي هذا الإشعار، عليك تقييم الطلب وتقديم اقتراح بردّ الأموال وإثبات استخدام عملية الشراء في غضون 24 ساعة من خلال استدعاء واجهة برمجة التطبيقات ReviewRefund.
يحتوي PendingRefundReviewNotification على الحقول التالية:
{
"version": string,
"pendingRefundToken": string,
"orderId": string,
"refundReason": int,
"obfuscatedAccountId": string,
"obfuscatedProfileId": string
}
| اسم الموقع | القيمة | الوصف |
|---|---|---|
| الإصدار | سلسلة | نسخة هذا الإشعار في البداية، تكون هذه النسخة "1.0". تختلف هذه النسخة عن حقول النسخ الأخرى. |
| pendingRefundToken | سلسلة | رمز مميّز فريد يحدّد طلب ردّ الأموال في انتظار المراجعة يُرجى تمرير هذا الرمز المميّز عند استدعاء واجهة برمجة التطبيقات ReviewRefund. |
| orderId | سلسلة | معرّف الطلب لعملية الشراء الخاضعة لمراجعة ردّ الأموال في انتظار المراجعة |
| refundReason | تدخُّل دفاعي | سبب طلب ردّ الأموال لا تتيح المراجعات في انتظار المراجعة سوى CHARGEBACK (7) كسبب لردّ الأموال. على الرمز البرمجي
التعامل مع الأسباب الجديدة عند توفّرها. |
| obfuscatedAccountId | سلسلة | (إذا كان ذلك منطبقًا) معرّف حساب المستخدم الذي حدّده المطوّر وتم إخفاؤه والذي تم تقديمه عند إجراء عملية الشراء |
| obfuscatedProfileId | سلسلة | (إذا كان ذلك منطبقًا) معرّف الملف الشخصي الذي حدّده المطوّر وتم إخفاؤه والذي تم تقديمه عند إجراء عملية الشراء |
مثال
في ما يلي مثال على إشعار بشأن مراجعة ردّ الأموال في انتظار المراجعة:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"pendingRefundReviewNotification":
{
"version":"1.0",
"pendingRefundToken":"example-token",
"orderId":"GPA.1234-5678-9012-34567",
"refundReason":7,
"obfuscatedAccountId":"user-account-id",
"obfuscatedProfileId":"user-profile-id"
}
}
TestNotification
يحتوي TestNotification على الحقول التالية:
{
"version": string
}
| اسم الموقع | القيمة | الوصف |
|---|---|---|
| الإصدار | سلسلة | نسخة هذا الإشعار في البداية، تكون هذه النسخة "1.0". تختلف هذه النسخة عن حقول النسخ الأخرى. |
مثال
في ما يلي مثال على إشعار تجريبي:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}