/* Buy the items - notifies of purchase success or failure Updates local store */ public void purchaseStoreItem(Activity c, StoreItem item, PurchaseResultListener listener) { purchaseListener = listener; mHelper.flagEndAsync(); mHelper.launchPurchaseFlow( c, item.googleSKU, 10001, mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); }
/* Init method - must be called before doing any store activity Wait for the ready listener to return storeReady isStore ready can be used for manual checks */ public void initialiseInAppPurchase(Context c, final PurchaseStoreReady readyListener) { mHelper = new IabHelper(c, PUBLIC_PURCHASE_KEY); mHelper.startSetup( new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) { isStoreReady = false; readyListener.storeFailed(); } else { isStoreReady = true; readyListener.storeReady(); } } }); }
public void onQueryInventoryFinished(IabResult result, Inventory inventory) { mHelper.flagEndAsync(); if (result.isFailure()) { updateListener.updateFailed(); return; } for (StoreItem item : getAllStoreItems(c)) { if (item.googleSKU != null) { item.isPurchased = inventory.hasPurchase(item.googleSKU); } } writePurchasedItems(c); updateListener.updateSuccess(); }
public void onIabPurchaseFinished(IabResult result, Purchase purchase) { StoreItem purchasedItem = null; int index = 0; mHelper.flagEndAsync(); if (purchase == null) { Toast.makeText( c, "We can't find the requested item. Please try again soon!", Toast.LENGTH_SHORT) .show(); return; } for (StoreItem item : getAllStoreItems(c)) { if (item.googleSKU.compareTo(purchase.getSku()) == 0) { purchasedItem = item; break; } index++; } if (result.isFailure() || purchasedItem == null) { Log.d("FF PURCHASE", "Error purchasing: " + result); purchaseListener.purchaseFailed(purchasedItem, purchase); return; } else { purchasedItem.isPurchased = true; getAllStoreItems(c).get(index).isPurchased = true; purchaseListener.purchaseSuccess(purchasedItem, purchase); } writePurchasedItems(c); }
/* Destroy method - call on fragment/activity destroy */ public void destroyInAppPurchase() { if (mHelper != null) mHelper.dispose(); mHelper = null; }
/* Get the purchased items from Google Stores them locally for next time - should be called at app launch to sync with G account */ public void checkPurchasedItems(PurchaseUpdateListener listener) { updateListener = listener; mHelper.queryInventoryAsync(mGotInventoryListener); }