محموله توسعهدهنده از گذشته برای اهداف مختلفی استفاده میشده است، ازجمله جلوگیری از کلاهبرداری و نسبت دادن خریدها به کاربر صحیح. با نسخههای 2.2 و بالاتر «کتابخانه خدمات صورتحساب Google Play»، موارد استفاده موردنظر که قبلاً به بار داده توسعهدهنده متکی بودند اکنون بهطور کامل در بخشهای دیگر کتابخانه پشتیبانی میشوند.
با وجود این پشتیبانی، محموله توسعهدهنده را از نسخه ۲.۲ «کتابخانه خدمات صورتحساب Google Play» منسوخ کردهایم. روشهای مرتبط با بار داده توسعهدهنده در نسخه ۲.۲ منسوخ شدهاند و در نسخه ۳.۰ برداشته شدند. توجه داشته باشید که برنامهتان میتواند همچنان محموله داده توسعهدهنده را برای خریدهای انجامشده بااستفاده از نسخههای قبلی کتابخانه یا AIDL بازیابی کند.
برای مشاهده فهرست کامل تغییرات، یادداشتهای انتشار نسخه ۲.۲ «کتابخانه خدمات صورتحساب Google Play» و یادداشتهای انتشار نسخه ۳.۰ «کتابخانه خدمات صورتحساب Google Play» را ببینید.
درستیسنجی خرید
برای اطمینان از اینکه خریدها معتبر هستند و جعلی یا تکراری نیستند، Google توصیه میکند
از کد خرید (که از
روش getPurchaseToken()
در شیء
Purchase بهدست میآید) همراه با
Google Play Developer APIs برای تأیید معتبر بودن خریدها استفاده کنید.
برای اطلاعات بیشتر، به
مبارزه با کلاهبرداری و سوءاستفاده مراجعه کنید.
اسناد خرید
بسیاری از برنامهها، بهویژه بازیها، باید مطمئن شوند که خرید بهدرستی به شخصیت/چهرهنمای درون بازی یا نمایه کاربر درون برنامه که خرید را شروع کرده است نسبت داده میشود. از «کتابخانه صورتحساب Google Play» نسخه ۲.۲، برنامهتان میتواند شناسههای حساب و نمایه مبهم را هنگام راهاندازی کادر گفتگوی خرید به Google ارسال کند و هنگام بازیابی خرید، آنها را برگرداند.
از پارامترهای
setObfuscatedAccountId()
و
setObfuscatedProfileId()
در
BillingFlowParams
استفاده کنید و آنها را بااستفاده از روش
getAccountIdentifiers()
در شیء
Purchase بازیابی کنید.
فراداده را با خرید مرتبط کنید
Google توصیه میکند فراداده مربوط به خرید را در سرور زیرینه امنی که خودتان نگهداری میکنید ذخیره کنید. این فراداده خرید باید با
کد خرید بهدستآمده بااستفاده از
روش getPurchaseToken
در شیء Purchase
مرتبط باشد. این دادهها را میتوان با ارسال کردن کد خرید و فراداده به باطن شما هنگام فراخوانی
PurchasesUpdatedListener
پساز خرید موفقیتآمیز حفظ کرد.
برای اطمینان از اینکه فراداده درصورت بروز وقفه در جریان خرید مرتبط میشود، Google توصیه میکند فراداده را قبلاز راهاندازی کادر گفتگوی خرید در سرور زیرینه خود ذخیره کنید و آن را با شناسه حساب کاربر، واحد نگهداری موجودی درحال خرید، و مُهر زمان فعلی مرتبط کنید.
اگر جریان خرید قبلاز فراخوانی
PurchasesUpdatedListener
شما قطع شود، برنامهتان پساز ازسرگیری و فراخوانی
BillingClient.queryPurchasesAsync()
خرید را شناسایی خواهد کرد.
سپس میتوانید مقادیر بازیابیشده از روشهای
getPurchaseTime()،
getSku()،
و getPurchaseToken()
شیء Purchase را به سرور زیرینه خود ارسال کنید تا فراداده را جستجو کند، فراداده را با توکن خرید مرتبط کند، و پردازش خرید را ادامه دهد. توجه داشته باشید که مُهر زمان ذخیرهشده اولیه شما دقیقاً با مقدار getPurchaseTime() شیء Purchase مطابقت نخواهد داشت، بنابراین باید آنها را بهصورت تقریبی مقایسه کنید. برای مثال، میتوانید بررسی کنید
که آیا مقادیر در دوره زمانی خاصی از یکدیگر قرار دارند یا نه.