Integrera Androidapp med In-app billing

Permalänk

Integrera Androidapp med In-app billing

Hejsan. Har gjort en liten app som man ska kunna köpa saker i. In app purchases.
Har lyckats få appen att integrera med Google och får upp det så kallade "purchaseflowet". Men lyckas inte lägga till själva objekten som ska gå att köpa.

Har lagt in min app i Alpha läge i developers console, och lagt till ett Item till appen som heter "stone1" med priset osv.
Hur kopplar jag samman det itemet i developers console till min kod? Det måste finnas något slags "id" som jag ska koppla till koden?

Såhär ser klassen ut:

public class AndroidLauncher extends AndroidApplication implements IabInterface{ IabInterface purchase; IabHelper mHelper; boolean mTombstoneChanged1; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); initialize(new TombStone(this), config); this.purchase = purchase; String base64EncodedPublicKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // compute public key and store it in base64EncodedPublicKey mHelper = new IabHelper(this, base64EncodedPublicKey); mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) { // IF any problem occurs, log that. Log.d("IAB", "Problem setting up In-app Billing: " + result); } // IAB is success Log.d("IAB", "Billing Success: " + result); processPurchases(); } }); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(mHelper != null) mHelper.dispose(); mHelper = null; } // Callback for when a purchase is finished IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { public void onIabPurchaseFinished(IabResult result, Purchase purchase) { if ( purchase == null) return; Log.d("IAB", "Purchase finished: " + result + ", purchase: " + purchase); // if we were disposed of in the meantime, quit. if (mHelper == null) return; if (result.isFailure()) { //complain("Error purchasing: " + result); //setWaitScreen(false); return; } // if (!verifyDeveloperPayload(purchase)) { // //complain("Error purchasing. Authenticity verification failed."); // //setWaitScreen(false); // return; // } Log.d("IAB", "Purchase successful."); if (purchase.getSku().equals(TOMBSTONE_ONE)) { // bought the premium upgrade! Log.d("IAB", "Purchase is premium upgrade. Congratulating user."); // Do what you want here maybe call your game to do some update // // Maybe set a flag to indicate that ads shouldn't show anymore mTombstoneChanged1 = true; } } }; // Listener that's called when we finish querying the items and subscriptions we own IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { public void onQueryInventoryFinished(IabResult result, Inventory inventory) { Log.d("IAB", "Query inventory finished."); // Have we been disposed of in the meantime? If so, quit. if (mHelper == null) return; // Is it a failure? if (result.isFailure()) { // handle failure here return; } // Do we have the premium upgrade? Purchase changeTombstone1 = inventory.getPurchase(TOMBSTONE_ONE); mTombstoneChanged1 = (changeTombstone1 != null); } }; @Override public void applyTombstone() { mHelper.launchPurchaseFlow(this, TOMBSTONE_ONE, RC_REQUEST, mPurchaseFinishedListener, "HANDLE_PAYLOADS"); } @Override public void processPurchases() { mHelper.queryInventoryAsync(mGotInventoryListener); } public void onActivityResult(int request, int response, Intent data) { super.onActivityResult(request, response, data); if (mHelper != null) { // Pass on the activity result to the helper for handling if (mHelper.handleActivityResult(request, response, data)) { Log.d("IAB", "onActivityResult handled by IABUtil."); } } } }

Visa signatur

Jaaa men just precis.