Checking a user has purchased an app

I created two apps one free and one PRO and published them to the market, now in hindsight I should have taken the time to create an In-App-Billing element to unlock the free to the full. I wish to go ahead anyway and create the in-app billing element in the free version, and then remove the other (PRO) version from the market.

My issue though is how do I determine that a user who installs the free version has previously installed the PRO version and hence auto unlock it?

Assuming they removed the PRO app already from their device, can I access their purchased transactions and then unlock that way?

Otherwise is there a way in the dev console to create a transaction for them without them paying, and when they load the free version, it will restore that transaction?

I didn't use LVL in the PRO version, does that make a difference?


There is no support for this currently. You can check whether a user has bought a paid app using the licensing service (LVL), but it cannot be used in a paid app. You obviously can't create in-app transactions (Google handles this), and IAB has no native support for cupons/activation codes. You can either:

  • build your own coupon/activation service (requires a server), or
  • manually refund the IAB purchase for users who have already bought the pro one. You will lose the 30% Google fee in this case though.

You could potentially use the email address that Google Checkout provides with each sold version of the app to notify the user or your pending change, and perhaps provide them with an activation code or something in the email you send. This could prove cumbersome if you sold a lot of the pro version though. How many pro versions did you sell?

I don't know if this is possible, but why don't you make the pro app free and use LVL to verify if the in-app purchase has been paid for?

Maybe it cant be done like that. I don't know.

Another option is to get the paid app to generate a "voucher code" to put into the new app. So a user can unlock the paid feature in the new app before uninstalling the old one.

Need Your Help

Changing variables from different classes

java colors

I am trying to have a button call a method in another class to update the color of something, however it is not functioning as I expect it to. The issue is that the color is changed once but never

Travis - Control Which Node Version is used for NPM Installs

node.js npm continuous-integration build-process travis-ci

I am attempting to install an npm package (markdown-pdf) as part of my Travis-CI build which I believe is not compatible with old versions of Node. On my local machine, I am running Node version 0....