این سند انواع اعلانهای توسعهدهندهی بلادرنگ (Real-time) را که میتوانید از گوگل پلی دریافت کنید، فهرست و شرح میدهد.
رمزگذاری
هر انتشاری که در یک موضوع 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" است. این نسخه با سایر فیلدهای نسخه متفاوت است. |
| نام بسته | رشته | نام بستهی برنامهای که این اعلان به آن مربوط میشود (برای مثال، `com.some.thing`). |
| رویدادزمانمیلس | طولانی | مهر زمانی که رویداد رخ داده است، بر حسب میلیثانیه از زمان شروع. |
| اعلان اشتراک | اعلان اشتراک | اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک اشتراک است و این فیلد حاوی اطلاعات اضافی مربوط به اشتراک است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، voidedPurchaseNotification و testNotification ناسازگار است. |
| اعلان یکباره محصول | اعلان محصول یکبار مصرف | اگر این فیلد وجود داشته باشد، این اعلان مربوط به خرید یکباره است و این فیلد حاوی اطلاعات اضافی مربوط به خرید است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، subscriptionNotification، voidedPurchaseNotification و testNotification ناسازگار است. |
| اعلان خرید باطلشده | اعلان خرید باطلشده | اگر این فیلد وجود داشته باشد، این اعلان مربوط به یک خرید باطل شده است و این فیلد حاوی اطلاعات اضافی مربوط به خرید باطل شده است. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، subscriptionNotification و testNotification ناسازگار است. |
| اعلان بررسی بازپرداخت در انتظار | اعلان بررسی در انتظار بازپرداخت | اگر این فیلد وجود داشته باشد، این اعلان مربوط به درخواست بازگشت وجه است که میتوانید برای آن راهحلی پیشنهاد دهید. با فراخوانی API مربوط به «بازپرداخت نقد و بررسی» به این اعلان پاسخ دهید. توجه داشته باشید که این فیلد با subscriptionNotification، oneTimeProductNotification، voidedPurchaseNotification و testNotification ناسازگار است. |
| اعلان تست | اعلان تست | اگر این فیلد وجود داشته باشد، این اعلان مربوط به انتشار آزمایشی است. این اعلانها فقط از طریق کنسول توسعهدهندگان گوگل پلی ارسال میشوند. توجه داشته باشید که این فیلد با pendingRefundReviewNotification، oneTimeProductNotification، subscriptionNotification و voidedPurchaseNotification ناسازگار است. |
اعلان اشتراک
یک SubscriptionNotification شامل فیلدهای زیر است:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
| نام ملک | ارزش | توضیحات |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است. |
| نوع اعلان | عدد صحیح | نوع اعلان (notificationType) برای یک اشتراک میتواند مقادیر زیر را داشته باشد:
|
| خرید توکن | رشته | توکنی که هنگام خرید اشتراک به دستگاه کاربر ارائه شده است. |
مثال
در اینجا مثالی از اعلان برای خرید اشتراک جدید آورده شده است:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
اعلان محصول یکبار مصرف
یک OneTimeProductNotification شامل فیلدهای زیر است:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
| نام ملک | ارزش | توضیحات |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این "1.0" خواهد بود. این نسخه با سایر فیلدهای نسخه متفاوت است. |
| نوع اعلان | عدد صحیح | نوع اعلان. میتواند مقادیر زیر را داشته باشد:
|
| خرید توکن | رشته | توکنی که هنگام خرید به دستگاه کاربر ارائه شده است. |
| اسکو | رشته | شناسه محصول یکبار مصرف خریداری شده (برای مثال، "sword_001") |
مثال
در اینجا مثالی از اعلان برای خرید جدید یکباره آورده شده است:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
اعلان خرید باطلشده
یک 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 زمانی ارسال میشود که کاربر درخواست بازپرداخت وجه برای خریدی را داشته باشد و این درخواست نیاز به بررسی توسط توسعهدهنده داشته باشد. وقتی این اعلان را دریافت کردید، باید درخواست را ارزیابی کرده و ظرف ۲۴ ساعت با تماس با API ReviewRefund ، پیشنهاد بازپرداخت و شواهد استفاده از خرید را ارائه دهید.
یک PendingRefundReviewNotification شامل فیلدهای زیر است:
{
"version": string,
"pendingRefundToken": string,
"orderId": string,
"refundReason": int,
"obfuscatedAccountId": string,
"obfuscatedProfileId": string
}
| نام ملک | ارزش | توضیحات |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است. |
| توکن بازپرداخت در انتظار | رشته | یک توکن منحصر به فرد که درخواست بازپرداخت در حال بررسی را مشخص میکند. این توکن را هنگام فراخوانی API مربوط به ReviewRefund ارسال کنید. |
| شناسه سفارش | رشته | شناسه سفارش خریدی که مشمول بررسی بازپرداخت در انتظار است. |
| دلیل بازپرداخت | عدد صحیح | دلیل درخواست بازپرداخت. بررسیهای در حال بررسی فقط CHARGEBACK (7) به عنوان دلیل بازپرداخت پشتیبانی میکنند. کد شما باید دلایل جدید را به محض در دسترس قرار گرفتن، مدیریت کند. |
| شناسه حساب مبهم | رشته | (در صورت وجود) شناسه حساب کاربری مبهمسازیشدهی مشخصشده توسط توسعهدهنده که هنگام خرید ارائه شده است. |
| شناسه پروفایل مبهم | رشته | (در صورت وجود) شناسه پروفایل مبهمسازیشدهی مشخصشده توسط توسعهدهنده که هنگام خرید ارائه شده است. |
مثال
در اینجا مثالی از اعلان بررسی بازپرداخت در انتظار آمده است:
{
"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 شامل فیلدهای زیر است:
{
"version": string
}
| نام ملک | ارزش | توضیحات |
|---|---|---|
| نسخه | رشته | نسخه این اعلان. در ابتدا، این "1.0" است. این نسخه با سایر فیلدهای نسخه متفاوت است. |
مثال
در اینجا نمونهای از یک اعلان آزمایشی را مشاهده میکنید:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}