آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

122276  6 سال پیش  6 سال پیش
0 0

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

دو تا کد زیر زا در کلاس 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;
}
0 0
همین کد ها را از قبل قرار دادم (6 سال پیش)
0 0
همین کد هاس که قبلا قرار داده بودم نمیدونم چرا کرش میکنه (6 سال پیش)
پاسخ به سوال 
122276  6 سال پیش
0 0

 زمان 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) 


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