این سند انواع اعلانهای بیدرنگ توسعهدهنده را که میتوانید از 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
}
این فیلدها در جدول زیر شرح داده شدهاند.
| نام دارایی | مقدار | شرح |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این مقدار «۱.۰» است. این نسخه با فیلدهای نسخه دیگر متفاوت است. |
| نام بسته | رشته | نام بسته برنامهای که این اعلان به آن مربوط است (برای مثال، `com.some.thing`). |
| eventTimeMillis | طولانی | مُهر زمان وقوع رویداد، برحسب میلیثانیه از «تاریخ یونیکس». |
| subscriptionNotification | SubscriptionNotification | اگر این فیلد وجود داشته باشد، این اعلان مربوط به اشتراک است و این فیلد حاوی اطلاعات تکمیلی مربوط به اشتراک است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، voidedPurchaseNotification، و testNotification بهصورت متقابل انحصاری است. |
| اعلان محصول یکباره | OneTimeProductNotification | اگر این فیلد وجود داشته باشد، این اعلان مربوط به خرید یکباره است و این فیلد حاوی اطلاعات تکمیلی مرتبط با خرید است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، subscriptionNotification، voidedPurchaseNotification، و testNotification بهصورت متقابل انحصاری است. |
| voidedPurchaseNotification | VoidedPurchaseNotification | اگر این فیلد وجود داشته باشد، این اعلان مربوط به خرید باطلشده است و این فیلد حاوی اطلاعات تکمیلی مربوط به خرید باطلشده است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، subscriptionNotification، و testNotification متقابلاً انحصاری است. |
| pendingRefundReviewNotification | PendingRefundReviewNotification | اگر این فیلد وجود داشته باشد، این اعلان مربوط به درخواست برگشت مبلغ است که میتوانید برای آن راهحلی پیشنهاد دهید. با فراخوانی کردن API `ReviewRefund` به این اعلان پاسخ دهید. توجه داشته باشید که این فیلد با subscriptionNotification، oneTimeProductNotification، voidedPurchaseNotification، و testNotification بهصورت متقابل انحصاری است. |
| testNotification | TestNotification | اگر این فیلد وجود داشته باشد، این اعلان مربوط به انتشار آزمایشی است. این ایمیلها فقط ازطریق Google Play Developer Console ارسال میشوند. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، subscriptionNotification، و voidedPurchaseNotification بهصورت متقابل انحصاری است. |
SubscriptionNotification
SubscriptionNotification شامل فیلدهای زیر است:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
| نام دارایی | مقدار | شرح |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این مقدار «۱.۰» است. این نسخه با فیلدهای نسخه دیگر متفاوت است. |
| 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
}
| نام دارایی | مقدار | شرح |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این مقدار «۱.۰» خواهد بود. این نسخه با فیلدهای نسخه دیگر متفاوت است. |
| 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
وقتی مشتری RTDN شما VoidedPurchaseNotification دریافت میکند،
اطلاعات زیر را یادداشت کنید:
packageName: برنامه را شناسایی میکند.eventTimeMillis: زمان تغییر وضعیت را به شما اطلاع میدهد.purchaseToken: کد ارائهشده به دستگاه کاربر هنگام خرید محصول.orderId: سفارشی را که با تراکنش باطلشده مرتبط است شناسایی میکند.productType: نشان میدهد که خرید باطلشده خرید درونبرنامه بوده است یا اشتراک.refundType: نوع استرداد مبلغی را که خرید را باطل کرده است مشخص میکند.
PendingRefundReviewNotification
وقتی کاربر درخواست برگشت مبلغ برای خرید میدهد و درخواست نیاز به بررسی توسعهدهنده دارد، PendingRefundReviewNotification ارسال میشود. وقتی این اعلان را دریافت کردید، باید درخواست را ارزیابی کنید و ظرف ۲۴ ساعت با تماس با
ReviewRefund API، پیشنهاد استرداد مبلغ و مدرک استفاده از خرید را ارائه دهید.
PendingRefundReviewNotification شامل فیلدهای زیر است:
{
"version": string,
"pendingRefundToken": string,
"orderId": string,
"refundReason": int,
"obfuscatedAccountId": string,
"obfuscatedProfileId": string
}
| نام دارایی | مقدار | شرح |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این مقدار «۱.۰» است. این نسخه با دیگر فیلدهای نسخه متفاوت است. |
| pendingRefundToken | رشته | یک کد یکتا که درخواست استرداد مبلغ معلقه درحال بررسی را شناسایی میکند. این کد را هنگام فراخواندن ReviewRefund API ارسال کنید. |
| orderId | رشته | شناسه سفارش خرید که مشمول بررسی استرداد مبلغ معلقه است. |
| refundReason | قطع توپ | دلیل درخواست استرداد مبلغ. مرورهای معلقه فقط از CHARGEBACK (۷) بهعنوان دلیل استرداد مبلغ پشتیبانی میکنند. کد شما باید
دلایل جدید را بهمحض دردسترس قرار گرفتن مدیریت کند. |
| شناسه حساب مبهمسازیشده | رشته | (درصورت وجود) شناسه حساب کاربری توسعهدهنده مبهمسازیشده که هنگام خرید ارائه شده است. |
| 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
}
| نام دارایی | مقدار | شرح |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این مقدار «۱.۰» است. این نسخه با فیلدهای نسخه دیگر متفاوت است. |
مثال
در اینجا نمونهای از اعلان آزمایشی آورده شده است:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}