يسرد هذا المستند أنواع إشعارات في الوقت الفعلي خاصة بالمطوّرين التي يمكنك تلقّيها من 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 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
}
}
Consuming VoidedPurchaseNotification
عندما يتلقّى برنامج RTDN 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 API. |
| 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"
}
}