Google Play Voided Purchases API فهرستی از سفارشهای مرتبط با خریدهایی را که کاربر باطل کرده است ارائه میکند. میتوانید از اطلاعات این فهرست برای پیادهسازی یک سیستم ابطال استفاده کنید که از دسترسی کاربر به محصولات آن سفارشها جلوگیری میکند.
این API برای سفارشهای درونبرنامهای یکباره و اشتراکهای برنامه اعمال میشود.
خرید را می توان به روش های زیر باطل کرد:
- کاربر برای سفارش خود درخواست بازپرداخت می کند.
- کاربر سفارش خود را لغو می کند.
- یک سفارش برگشت داده می شود.
برنامهنویس سفارش را لغو یا بازپرداخت میکند.
Google سفارش را لغو یا بازپرداخت می کند.
با استفاده از این API، به ایجاد یک تجربه متعادل تر و منصفانه برای همه کاربران برنامه خود کمک می کنید، به خصوص اگر برنامه شما یک بازی باشد.
دستیابی به دسترسی
برای کار با Voided Purchases API، باید مجوز مشاهده اطلاعات مالی را داشته باشید. شما با استفاده از یک سرویس گیرنده OAuth یا یک حساب خدمات مجوز ارائه می کنید. اگر از یک حساب خدماتی استفاده میکنید، مجوز «مشاهده گزارشهای مالی» را در این حساب فعال کنید.
برای کسب اطلاعات بیشتر در مورد دسترسی مجاز به API های برنامه نویس Google Play، به راهنمای زیر مراجعه کنید:
مشاهده خریدهای باطل
از روش GET
برای درخواست لیستی از خریدهای باطل استفاده کنید. در درخواست خود، نام بسته کاملاً واجد شرایط برنامه خود - مانند com.google.android.apps.maps
- و رمز مجوزی را که هنگام دسترسی به API دریافت کردهاید، وارد کنید.
GET https://www.googleapis.com/androidpublisher/v3/applications/ your_package_name/purchases/voidedpurchases?access_token=your_auth_token
همچنین می توانید پارامترهای زیر را در درخواست خود بگنجانید که هر کدام اختیاری است:
- زمان شروع
زمان، بر حسب میلی ثانیه از دوران یونیکس ، قدیمی ترین خرید باطل شده ای که می خواهید در پاسخ مشاهده کنید. به طور پیش فرض،
startTime
روی 30 روز پیش تنظیم شده است.API فقط میتواند خریدهای باطل شدهای را نشان دهد که در 30 روز گذشته رخ دادهاند. خریدهای باطل شده قدیمیتر، صرفنظر از ارزشی که برای
startTime
ارائه کردهاید، در پاسخ لحاظ نمیشوند.- پایان زمان
زمان، بر حسب میلی ثانیه از دوران یونیکس ، جدیدترین خرید باطل شده ای که می خواهید در پاسخ مشاهده کنید. به طور پیش فرض،
endTime
روی زمان فعلی تنظیم شده است.- حداکثر نتایج
- حداکثر تعداد خریدهای باطل که در هر پاسخ ظاهر می شود. به طور پیش فرض این مقدار 1000 است. توجه داشته باشید که حداکثر مقدار برای این پارامتر نیز 1000 است.
- نشانه
- یک نشانه ادامه از پاسخ قبلی که به شما امکان می دهد نتایج بیشتری را مشاهده کنید.
- نوع
نوع خریدهای باطل که در هر پاسخ ظاهر می شود. اگر روی 0 تنظیم شود، فقط خریدهای درونبرنامهای باطل شده برگردانده میشوند. اگر روی ۱ تنظیم شود، هم خریدهای درونبرنامهای باطل و هم خریدهای اشتراک باطل برگردانده میشوند. مقدار پیش فرض 0 است.
- شامل بازپرداخت جزئی مقدار مبتنی بر مقدار
آیا شامل خریدهای باطل بازپرداخت جزئی بر اساس مقدار است که فقط برای خریدهای چند مقداری قابل اعمال است. اگر
true
، خریدهای اضافی باطل شده ممکن است باvoidedQuantity
که مقدار بازپرداخت بازپرداخت جزئی بر اساس مقدار را نشان میدهد، بازگردانده شوند. مقدار پیش فرضfalse
است.
پاسخ یک رشته JSON است که شامل لیستی از خریدهای باطل شده است. اگر نتایج بیشتر از تعداد مشخصشده در پارامتر درخواست maxResults
باشد، پاسخ شامل یک مقدار nextPageToken
است که میتوانید برای مشاهده نتایج بیشتر به درخواست بعدی ارسال کنید. اولین نتیجه در لیست قدیمی ترین خرید باطل شده را نشان می دهد.
{ "tokenPagination": { "nextPageToken": "next_page_token" }, "voidedPurchases": [ { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_purchase_token", "purchaseTimeMillis": "1468825200000", "voidedTimeMillis": "1469430000000", "orderId": "some_order_id", "voidedSource": "0", "voidedReason": "4" }, { "kind": "androidpublisher#voidedPurchase", "purchaseToken": "some_other_purchase_token", "purchaseTimeMillis": "1468825100000", "voidedTimeMillis": "1470034800000", "orderId": "some_other_order_id", "voidedSource": "2", "voidedReason": "5" }, ] }
سهمیه ها
Voided Purchases API سهمیه های زیر را بر اساس هر بسته تعیین می کند:
- 6000 پرس و جو در روز. (روز در نیمه شب به وقت اقیانوس آرام شروع و به پایان می رسد.)
- 30 پرس و جو در هر دوره 30 ثانیه ای.
دستورالعمل برای درخواست های اولیه
در طول درخواست اولیه API خود، ممکن است بخواهید همه داده های موجود را برای برنامه خود واکشی کنید. اگرچه بعید است، اما این روند می تواند سهمیه روزانه شما را تمام کند. برای به دست آوردن اطلاعات خریدهای باطل به روشی ایمن تر و سازگارتر، این بهترین شیوه ها را دنبال کنید:
- از مقدار پیش فرض برای پارامتر
maxResults
استفاده کنید. به این ترتیب، اگر از کل سهمیه درخواست خود برای یک روز استفاده کنید، می توانید جزئیات 6,000,000 خرید باطل شده را بازیابی کنید. - اگر یک پاسخ حاوی مقداری برای
nextPageToken
باشد، در درخواست بعدی خود این مقدار را به پارامترtoken
اختصاص دهید.
بهترین شیوه ها
هنگام استفاده از این API در برنامه خود، به یاد داشته باشید که دلایل زیادی برای لغو خرید وجود دارد و هیچ راه حل واحدی وجود ندارد که در همه موارد کار کند. هنگام طراحی خط مشی ها و استراتژی های ابطال، باید کاربران خود را در نظر داشته باشید. برای انجام این کار، می توانید این روش های توصیه شده را اعمال کنید:
- از این API به عنوان یکی از عناصر متعدد در یک استراتژی جامع برای رسیدگی به رفتارهای نامطلوب استفاده کنید. لغو دسترسی به محصولات درونبرنامه معمولاً زمانی مؤثرتر است که با برنامهای ترکیب شود که قیمتهای مناسبی برای خریدهای درونبرنامه دارد، طراحی اپلیکیشنی که رفتار نامطلوب را منع میکند، پایگاه کاربری قوی که فرهنگ آن چنین رفتاری را رد میکند، و پشتیبانی پاسخگو و کارآمد کاربر. کانال ها
- خط مشی ابطال خود را به طور یکسان مدیریت کنید تا از عدالت برای همه کاربران اطمینان حاصل کنید.
- هنگام پرداختن به رفتار ناخواسته، یک خط مشی مرحلهای را در نظر بگیرید. به عنوان مثال، با هشدارهای درون برنامه ای برای تخلفات اولیه شروع کنید، سپس با ادامه رفتار نامطلوب کاربر، پاسخ های خود را تشدید کنید. به عنوان آخرین راه حل، می توانید به هیچ وجه از تعامل کاربر با برنامه خود جلوگیری کنید.
- وقتی یک خطمشی لغو را معرفی میکنید و هر بار که آن را بهروزرسانی میکنید، از کانالهای ارتباطی برنامهتان برای اطلاعرسانی به کاربران خود در مورد تغییرات استفاده کنید. به کاربران خود زمان بدهید تا قبل از اعمال این تغییرات در برنامه شما، به وضوح این تغییرات را درک کنند.
- برای کاربران خود شفاف باشید و هر زمان که اقدامی انجام می دهید، مانند لغو دسترسی آنها به یک محصول درون برنامه ای، به آنها اطلاع دهید. در حالت ایده آل، کاربران باید بتوانند تصمیمات شما را به چالش بکشند و با چنین اختلافاتی باید منصفانه برخورد شود.
- فرمهای بازخورد و انجمنهای انجمن را زیر نظر بگیرید تا بفهمید چه چیزی کاربران را به رفتارهای نامطلوب سوق میدهد و چگونه چنین رفتاری را انجام میدهند. بر اساس این بینش ها به عنوان اولین خط دفاع عمل کنید.