بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

پرداخت درون برنامه ای بازار

مدیریت گفتگو
122276 6 سال پیش
آخرین تغییر: 6 سال پیش

با عرض سلام
برنامه ای نوشتم که در ان پرداخت درون برنامه ای کافه بازار را پیاده سازی کردم
اما برنامه زمان گرفتن کوئری(queryInventoryAsync)
اگر کاربر پرداخت درون برنامه ای را انجام داده باشد کرش میکند
و اینکه اگه کاربر پرداخت درون برنامه ای را انجام نداده باشد برنامه کرش نمیکند و جواب کوئری را به درستی false دریافت میکند ونمایش میدهد
لطفا راهنمایی کنید

نظرات

پاسخ‌ها 2

000000 6 سال پیش

دو تا کد زیر زا در کلاس G قرار بده

public static boolean prepareBazaarInAppBilling(final boolean requireUpdatePrefrences,final IabHelper.QueryInventoryFinishedListener mGotInventoryListener) {
try {
mHelper = new IabHelper(G.context, base64EncodedPublicKey);
Log.d(TAG, "Starting setup.");
IabHelper.OnIabSetupFinishedListener listener =
new IabHelper.OnIabSetupFinishedListener() {

public void onIabSetupFinished(IabResult result) {
Log.d(TAG, "Setup finished.");
if ( !result.isSuccess()) {
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
if (requireUpdatePrefrences && mGotInventoryListener != null) {
mHelper.queryInventoryAsync(mGotInventoryListener);
}
}
};
mHelper.startSetup(listener);
return true;
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}


///////

public static void setPremiumState(boolean state) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("IS_PREMIUM", state);
editor.apply();
premiumState = state;
}

نظرات

122276 6 سال پیش
همین کد ها را از قبل قرار دادم
122276 6 سال پیش
همین کد هاس که قبلا قرار داده بودم نمیدونم چرا کرش میکنه
122276 6 سال پیش

 زمان query گرفتن این error رو میده

04-21 04:58:40.971 3877-3921/emad.rahim.app.tendays E/IABUtil/Security: Base64 decoding failed.
04-21 04:58:40.971 3877-3921/emad.rahim.app.tendays E/AndroidRuntime: FATAL EXCEPTION: Thread-174
java.lang.IllegalArgumentException: com.example.android.trivialdrivesample.util.Base64DecoderException: encoded value has invalid trailing byte
at com.example.android.trivialdrivesample.util.Security.generatePublicKey(Security.java:84)
at com.example.android.trivialdrivesample.util.Security.verifyPurchase(Security.java:60)
at com.example.android.trivialdrivesample.util.IabHelper.queryPurchases(IabHelper.java:933)
at com.example.android.trivialdrivesample.util.IabHelper.queryInventory(IabHelper.java:607)
at com.example.android.trivialdrivesample.util.IabHelper.queryInventory(IabHelper.java:585)
at com.example.android.trivialdrivesample.util.IabHelper$2.run(IabHelper.java:680)
at java.lang.Thread.run(Thread.java:856)
Caused by: com.example.android.trivialdrivesample.util.Base64DecoderException: encoded value has invalid trailing byte
at com.example.android.trivialdrivesample.util.Base64.decode(Base64.java:532)
at com.example.android.trivialdrivesample.util.Base64.decode(Base64.java:473)
at com.example.android.trivialdrivesample.util.Base64.decode(Base64.java:419)
at com.example.android.trivialdrivesample.util.Security.generatePublicKey(Security.java:72)
at com.example.android.trivialdrivesample.util.Security.verifyPurchase(Security.java:60) 
at com.example.android.trivialdrivesample.util.IabHelper.queryPurchases(IabHelper.java:933) 
at com.example.android.trivialdrivesample.util.IabHelper.queryInventory(IabHelper.java:607) 
at com.example.android.trivialdrivesample.util.IabHelper.queryInventory(IabHelper.java:585) 
at com.example.android.trivialdrivesample.util.IabHelper$2.run(IabHelper.java:680) 
at java.lang.Thread.run(Thread.java:856) 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .