Implementing In App purchases in Android?

Edit: Android now supports in-app billing!

Original question:

It looks like Android won't natively support in-app purchases for a while, and when it does there might be a huge user base with devices that don't support them.

What's the best way to implement iPhone-like (additional content or services) in-app purchases in Android using the Android Market if possible?

The solution should consider in particular:

  • For all kinds of in-app purchases: Android Market's 24-hour cancellation policy
  • For consumables/non-consumables: storage of additional content (ie: use precious application memory to avoid piracy, or use SD card to avoid bloating application memory)


Asked by: Alford398 | Posted: 25-01-2022

Answer 1

This has changed as of today! There is now an example on the Android Developer site here:

Answered by: Daryl124 | Posted: 26-02-2022

Answer 2

You can create a premium key application, that will have a key. How you expose that it's your deal ( or you can just check if PremiumKey activity exist ). From the main app you just check for your key and if it's exist enable premium option ) If you're talking about buying OTHER apps from yours - build your list with market url pointed to the other apps ( market:// )

Answered by: David471 | Posted: 26-02-2022

Answer 3

It is against the Android Market Developer Distribution Agreement to take in-app payment:

3.3 ... All fees received by Developers for Products distributed via the Market must be processed by the Market’s Payment Processor.

Answered by: Elise187 | Posted: 26-02-2022

Answer 4

Looks like Paypal has launched a library for accepting in-app payments. See here. Not sure if this system violates the T&C though.

Answered by: Elian886 | Posted: 26-02-2022

Answer 5

You say that Android Market doesn't support in-app purchases, and then ask how you can implement in-app purchases using Android Market?(!)

Anyway, if and when they do support it, I imagine it could be distributed as an update to the Android Market application itself, so most users would be able to use the functionality. I believe the Market app updates itself automatically.

Possibly the Market would accept an Intent to trigger a payment via the usual on-device mechanism and return your app (or more likely your server) a callback.

Answered by: Ted660 | Posted: 26-02-2022

Answer 6

There is also another in-app payment platform for Android applications called MoVend ( I have checked it out and there are several benefits using it compared to the other 2 mentioned earlier:

Many payment channels : Operator Billing for more than 38 countries, PayPal and virtual credits.

Many distribution channels: They work with developers to distribute their applications through the various distribution channels like Operator AppStores , OEMs and Android applications website. Marketing is something we all need. They are also invested by Singapore Telecommunications who has a strong presence in South East Asia.

They provide a sales analytics for you to track, trace and monitor the performance of your apps. Since they are available worldwide, you can always tailor your applications to the different geography area.

I am trying to build Android applications and monetizing is important.

Reply this thread so we can discuss how we can monetize our Android applications.

Answered by: Emma634 | Posted: 26-02-2022

Answer 7

Here's another free licensing and payments system. The nice thing about this one is that it allows you to offer your app in any app store.

You can find more details @

Answered by: Chloe154 | Posted: 26-02-2022

Answer 8

Check out, they are doing something like this. Not sure if it violates terms or not, but I will probably check it out.

Answered by: John439 | Posted: 26-02-2022

Answer 9

For implementing in-app purchases in Air applications you may use third-party libs (Adobe AIR does not support In App Purchases for any platforms out of the box). For example, developed by Milkman Games (unfortunately, they are not free)

Answered by: Roman556 | Posted: 26-02-2022

Similar questions

sqlite - Implementing a module system with Android in-app purchases

I have a question regarding in-app purchases in Android. But first off, a little bit of information about what I am trying to do... My app has a collection of "modules" that are arranged in a SQLite database arranged like this. These modules are differentiated simply by a column that designates what module that particular entry belongs to. What I want to do, is create an in-app purchase system where the user can do...

android - Implementing InApp Purchases

in OnCreate() helper=new IabHelper(getApplicationContext(),base64EncodedPublicKey); helper.startSetup(new IabHelper.OnIabSetupFinishedListener() { @Override public void onIabSetupFinished(IabResult result) { if(!result.isSuccess()){ Log.d(TAG_BILLING,"In app failed "+result); }else{ Log.d(TAG_BILLING,"billing success"); ...

android - Implementing a listview inside a sliding drawer with a listview already present

I have an app whose main class extends ListActivity: public class GUIPrototype extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Cursor c = managedQuery(People.CONTENT_URI, null, null, null, null); String[] from = new String[] {People.NAME}; int[] to = ne...

Cannot find certain implementing classes in Android

In short, I am looking for the implementation of the IAlarmManager. I am interested in the scheduling done by the AlarmManager.setInexactRepeating method and so I started looking for the implementation but I haven't been able to find anything. Internally to AlarmManager, I can see that the actual work is being done by an interface. After googling around for a bit there seems to reference...

animation - Android: implementing sliding cards in widget

I have a widget that periodically updates itself (hourly) to display top result of search query. I would like to extend it so it captures several top results and then loops through these. The best example would be Genie News and Weather widget for which I was unable to find a source code. QUESTIONS: What would be a good way to implement the animation? I'm thinking ViewAnimator

user interface - Implementing "Drilldown" navigation in Android App UI

I am trying to learn how to do stuff in Android, and I'm not sure of the best way to build the interface. I've been working on porting an iPhone app, which uses navigation controllers and table views for looking at the different sections: basically, someone touches a cell in the table, which drills down to another table. when they touch a cell on that table it drills down to a webview that displays the information....

Implementing a customized drawable in Android

I was trying to get hold of 2D graphics in Android. As a example i want to implement a custom drawable and show it in my Activity I have defined a customized drawable by extending from Android drawable as mentioned below class myDrawable extends Drawable { private static final String TAG = myDrawable.class.getSimpleName(); private ColorFilter cf; @Override public void draw(Canvas can...

Implementing an interactive notification in the status bar (Android)

I'd like to know how to disable the highlighting effect when the user clicks the notification in the status bar and furthermore, I'd like to allow the user to interact directly with the RemoteView I have placed in the notification by means of button pressing. I know this can be done as HTC's Sense has an ongoing notification while a call is in progress that has accomplished the above goals. Please let me kn...

layout - Implementing Android Action Bar

I am working on creating an Action Bar like the one from the new Android UI Patterns and I am running into a bit of trouble. I have a ViewSwitcher with two layouts in it. When the user taps the search button I animate between the two layouts. The problem is that the layouts are different sizes and I can't figure out how to make them take up the same amount of space. Here's what I mean. p.s. forgive the ba...

Getting started designing and implementing an idea for Android App

java - Implementing button click from a custom list view

I am using one class which extends ListActivity and One class extending BaseAdapter. The Base Adapter uses getView function to inflate layout from xml. The xml contains a text and a button to delete the row of list. Please let me know how to handle the button click in the ListActivity class. Send me a sample snapshot Thanks

android - When implementing bindView() for an adapter, can I 'skip' a view?

I'm implementing a custom adapter that iterates over some database entries which in turn link back to the Android contacts database. The adapter will make the query to the content resolver and bind the data from the returned cursor into the view. However, suppose I add a contact to my private database, then remove it from the Android contacts list. The query will fail, and ideally in that case I want to delete that entry f...

Still can't find your answer? Check out these communities...

Android Google Support | Android Community | Android Community (Facebook) | Android