راهنمای توابع و کدهای خطای کتابخانه‌ی پرداخت

متدهای 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 است که در بازار تعریف کرده اید.

info شناسهٔ محصول

شناسه‌ی محصول رشته‌ی منحصر به فردی است که محصولات مختلف را از یکدیگر متمایز می‌کند. این شناسه را در بخش «پرداخت درون‌برنامه‌ای» در پنل بازار زمانی که محصولات و اشتراک‌های اپلیکیشنتان را تعریف می‌کنید خودتان تعیین می‌کنید. شناسه‌ی محصول حداکثر 100 حرف می‌تواند داشته باشد و قابل تغییر نیست.

onBillingError

این تابع زمانی صدا زده می‌شود که خطایی رخ داده باشد. با چک کردن مقدار errorCode می‌توانید نوع خطا را متوجه شوید و اقدامات لازم را انجام دهید. جدول کد خطاها در ادامه آمده است.

جدول کدهای خطا

 

کد خطاتوضیح کوتاه
100مشکل در دریافت خرید‌های پیشین
101مشکل دراتصال به بازار برای راه اندازی پرداخت. در این حالت تابع onBillingInitialized صدا زده نمی‌شود. یکی از دلایل بروز این خطا نصب نبودن اپلیکیشن کافه بازار روی گوشی کاربر است.
102اشکال در تأیید امضای خرید
103از بین رفتن context (مثلا بسته شدن Activity خرید پیش از اتمام مراحل خرید)
203 و 204 اشکال در برقراری ارتباط با نیواد
205تشخیص تلاش برای هک پرداخت درون برنامه‌ای. در صورتی که این خطا رخ دهد با اطمینان می‌توانید به کاربر هشدار دهید که اپلیکیشن شما توسط نیواد محافظت می‌شود و امکان هک کردن پرداخت درون برنامه‌ای وجود ندارد.
110سایر خطاها