پرداخت درون برنامه ای بازار
دو تا کد زیر زا در کلاس 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;
}
زمان 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)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .