Change paid Android app to free in-app purchase

I received a successful payment for an application on the Google Play Store and I want to update this application to get a free application with an in-app purchase.

I just finished developing a free version of the application that provides users with limited access, which can then be unlocked using the in-app purchase system.

The problem is that all my existing users who paid for the application will be updated and then offered to pay again, which, of course, is not the case.

Is there a way to check the user's purchase history, determine what they have already paid for the application, and unlock additional features without buying in the application?

Thanks for any help. Lewis

+7
android google-play
source share
5 answers

It has been a year, so the OP probably doesn't need it, but in case someone else happens to it ...

You could approach this in several ways. Obviously, there is some kind of business logic in your new app purchase app to keep track of who / didn't pay. Therefore, the two ways in which I see that you can do this are as follows:

Idea 1:

You can do a preliminary update for your paid application, which stores SharedPreference or some other persistence in the application (you can save the version code so that you know that you are updating and have business logic). Then upgrade to the free version and ask the free version to check your general preferences and do the right thing when upgrading from the "paid" versionCode.

Idea 2:

You can leave both applications separate (have a paid version and free with in-app purchases) and click the update for the paid version to have BroadcastReceiver , which actually does nothing but listen to specific intentions and you have a purchase check in the application to make sure something accepts your intent. If your old paid version exists, then they paid for it, if not for them. (If they paid for the paid version and then deleted, you will have problems, obviously ...)

Idea 3:

You can leave both applications separate (have a paid version and free with in-app purchases) and click on the update for the paid version, which simply sends Intent to open the app for purchase in the app (if installed) with some special arguments so you know that they opened it through a paid application and do everything possible to configure them for paying for it in the application. This reveals some detection issues though ... (solvable but kind of clumsy)

+4
source share

You can save the existing paid version and create another free version.

If you really do not want to have 2 versions, just do it for free and tell users something like “Contact us if you bought a paid version. We will give you a buyback code to unlock xxx '.

+1
source share

On Google Play, there’s no difference between paying for an app or a free download. For example, if a user downloads the application during its free use, and later will be changed to a paid one, this user will still have full access to it, even having the ability to download it to other devices.

There are several lame workarounds for this:

  • Turn on the services of the google game on the paid version and try to convince users to connect to it. Use Google Play services to store "purchased and paid" information in the cloud and restore it whenever this user logs in.
  • Provide all users who purchased the key to unlock the features.
  • Create a different version of the free version of the game

However, keep in mind that many games have become free after some time. Perhaps users will not mind so much.

0
source share

https://developer.android.com/distribute/tools/launch-checklist.html#decide-price

This link seems relevant, hope it helps

On Google Play, you can publish apps for free to download or rate. Free apps can be downloaded by any Android user on Google Play. Paid applications can only be downloaded by users who are in a country that supports paid downloads and have registered a payment method on Google Play, for example, a credit card or direct payment.

The decision about whether your apps will be free or paid is important because on Google Play, free apps must remain free.

Once you publish the application as a free application, you cannot change it as an expensive application. However, you can sell products and subscriptions in the app through the Google Play In-app billing service. If you publish your application as an expensive application, you can change it to a free application at any time (but you cannot change it for the price). You can also sell products and subscriptions in the app. If your application will be rated or if you will be selling products in the application, you need to set up a Google Payments Merchant account before you can publish.

0
source share

I believe the easiest way is to use this line of codes

This gives you the old version code

 SharedPreferences prefs = getSharedPreferences("Name_of_Prefs", MODE_PRIVATE); int oldVersionCode = prefs.getInt("version_code", -1); 

This gives you the current version code.

 int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(),0).versionCode; 

Now you can compare and do what you want. Remember to update after every time with this line of code

 prefs.edit().putInt(PREF_VERSION_CODE_KEY, currentVersionCode).commit(); 
0
source share

All Articles