IN App Purchase – Android – Simplified source code

By | September 27, 2018

Hi all,

I have already showed you how to implement in app purchase in Android.
Please go through this post before reading this article.

Android IN App Purchase

This is how the MainActivity source code will look like.

package com.coderzheaven.inappdemo;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
 
import com.coderzheaven.android.util.IabHelper;
import com.coderzheaven.inapp.InAppPurchase;
import com.coderzheaven.inapp.InAppStateListener;
 
public class MainActivity extends Activity implements OnClickListener,
        InAppStateListener {
 
    static final String TAG = "INAPPTESTING";
 
    // INAPP
    IabHelper mHelper;
    InAppPurchase inapp;
    static String SKU_INAPPITEM_ID = "android.test.purchased";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
    }
 
    @Override
    public void onClick(View v) {
 
        if (v.getId() == R.id.button_query) {
 
            showToast("Querying Items");
            inapp = new InAppPurchase(this, this, SKU_INAPPITEM_ID);
            mHelper = inapp.QueryInventry();
 
        } else {
 
            if (inapp != null)
                inapp.initiatePurchase();
            else
                showToast("Please click query items before purchasing");
 
        }
 
    }
 
    public void showToast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
        ;
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + ","
                + data);
 
        // Pass on the activity result to the helper for handling
        if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
            // not handled, so handle it ourselves (here's where you'd
            // perform any handling of activity results not related to in-app
            // billing...
            super.onActivityResult(requestCode, resultCode, data);
        } else {
            Log.d(TAG, "onActivityResult handled by IABUtil.");
        }
    }
 
    // IN APP PURCHASE LISTENERS
 
    @Override
    public void onInAppInitialiseError() {
        System.out.println("onInAppInitialiseError");
        showToast("In App initialise Error.");
    }
 
    @Override
    public void onInAppInitialiseSuccess() {
        System.out.println("onInAppInitialiseSuccess");
        showToast("In App initialise Success.");
    }
 
    @Override
    public void onQueryInventryCompleted() {
        System.out.println("onQueryInventryCompleted");
        //showToast("Querying Items Completed.");
    }
 
    @Override
    public void onQueryInventryError(String message) {
        System.out.println("onQueryInventryError : ");
        showToast("Querying Items Error.");
    }
 
    @Override
    public void onAlreadyPurchased(String inappItemID) {
        System.out.println("onAlreadyPurchased");
        showToast("Item already Purchased.");
    }
 
    @Override
    public void onItemNotPurchased(String inappItemID) {
        System.out.println("onItemNotPurchased : " + inappItemID);
        showToast("Item not purchased");
    }
 
    @Override
    public void onPurchaseSuccessfull(String inappItemID) {
        System.out.println("onPurchaseSuccessfull : " + inappItemID);
        showToast("Purchase Successful");
    }
 
    @Override
    public void onPurchaseError(String inappItemID, String message) {
        System.out.println("onPurchaseError : " + inappItemID);
        showToast("Purchase Error");
    }
 
}

You can download the complete source code from here itself.

2 thoughts on “IN App Purchase – Android – Simplified source code

    1. James Post author

      Jan, Sorry for the broken links, I have updated the links. Please have a look and let me know. Thanks.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *