راهنمای توابع و کدهای خطای کتابخانهی پرداخت
متدهای IBilingHandler
@Override
public void onProductPurchased(String productId, TransactionDetails details) {
}
@Override
public void onBillingError(int errorCode, Throwable error) {
}
@Override
public void onBillingInitialized() {
}
@Override
public void onPurchaseHistoryRestored() {
}
onBillingInitialized
وقتی این متد صدا زده میشود یعنی اتصال اپلیکیشن/بازی شما با کافه بازار برقرار شده و از این لحظه به بعد پرداختهای درون برنامهای قابل انجام هستند. توصیه میکنیم که دکمههایی که برای خرید در برنامه قرار دادهاید را تا قبل از صدا شدن این تابع مخفی یا Disable کنید و پس از اجرای این تابع آنها را قابل استفاده کنید تا کاربر با مشکلی روبرو نشود.
onPurchaseHistoryRestored
این متد زمانی صدا زده میشود که تمام محصولاتی که کاربر خریداری کرده از بازار دریافت شده اند. این محصولات شامل اشتراکهای سالانه و ماهانه و محصولات مصرف شدنیای که هنوز مصرف نشدهاند (متد consumePurchase
روی آنها اجرا نشده) است. برای دریافت لیست این محصولات میتوانید از توابع listOwnedProducts
و listOwnedSubscriptions
مانند نمونهی زیر استفاده کنید.
for(String sku : mNivadBilling.listOwnedProducts()) {
Log.d("nivad", "Owned Product: " + sku);
}
for(String sku : mNivadBilling.listOwnedSubscriptions()) {
Log.d("nivad", "Owned Subscription: " + sku);
}
onProductPurchased
این متد پس از خرید موفق یک محصول صدا زده میشود. اگر حالت ایمن کتابخانه فعال باشد تا زمانی که صحت خرید توسط نیواد و کافه بازار تأیید نشده باشد این متد صدا زده نخواهد شد. اگر محصول مصرف شدنی باشد میتوانید در این متد از consumePurchase
استفاده کنید. مثال:
@Override
public void onProductPurchased(String productId, TransactionDetails details) {
Log.i("nivad", "onProductPurchased: " + productId);
mNivadBilling.consumePurchase(productId);
}
در این مرحله میتوانید محصولی که کاربر خریداری کرده را فعال کنید. به عنوان مثال نسخهی کامل برنامه را فعال کنید، تبلیغات را حذف کنید یا به سکههای کاربر در بازی اضافه کنید. productId
همان شناسهی محصول یا sku
است که در بازار تعریف کرده اید.
شناسهی محصول رشتهی منحصر به فردی است که محصولات مختلف را از یکدیگر متمایز میکند. این شناسه را در بخش «پرداخت درونبرنامهای» در پنل بازار زمانی که محصولات و اشتراکهای اپلیکیشنتان را تعریف میکنید خودتان تعیین میکنید. شناسهی محصول حداکثر 100 حرف میتواند داشته باشد و قابل تغییر نیست. شناسهٔ محصول
onBillingError
این تابع زمانی صدا زده میشود که خطایی رخ داده باشد. با چک کردن مقدار errorCode
میتوانید نوع خطا را متوجه شوید و اقدامات لازم را انجام دهید. جدول کد خطاها در ادامه آمده است.
جدول کدهای خطا
کد خطا | توضیح کوتاه |
---|---|
100 | مشکل در دریافت خریدهای پیشین |
101 | مشکل دراتصال به بازار برای راه اندازی پرداخت. در این حالت تابع onBillingInitialized صدا زده نمیشود. یکی از دلایل بروز این خطا نصب نبودن اپلیکیشن کافه بازار روی گوشی کاربر است. |
102 | اشکال در تأیید امضای خرید |
103 | از بین رفتن context (مثلا بسته شدن Activity خرید پیش از اتمام مراحل خرید) |
203 و 204 | اشکال در برقراری ارتباط با نیواد |
205 | تشخیص تلاش برای هک پرداخت درون برنامهای. در صورتی که این خطا رخ دهد با اطمینان میتوانید به کاربر هشدار دهید که اپلیکیشن شما توسط نیواد محافظت میشود و امکان هک کردن پرداخت درون برنامهای وجود ندارد. |
110 | سایر خطاها |