Skip to main content
Inspiring
June 8, 2012
Question

in-app purchase - restore transaction

  • June 8, 2012
  • 6 replies
  • 1904 views

Ok so I have been able to use the native extensions to make use of the in app purchase and got that working well, however, my app got rejected because I didn't have a way for a user to restore their purchase if they delete the app from their device and re-add it at a later date.

Here's my question though. How do I detect whether a user has actually already purchased the in-app purchase when they reinstall the app to show the restore purchase button.

Right now the way it works is that when they buy my in app purchase the app stores a variable in a SharedObject so that whenever the app loads it sees the vairable as true and reveals the feature. Once they delete the app from the device the shared object has been deleted also so there is no way for the app to know it was already purchased.

Do I just put a button on the purchase screen that says "restore purchase" that will fire the StoreKit.storeKit.restoreTransactions()event if that user had already purchased something, but return an error if they hadn't?

This topic has been closed for replies.

6 replies

User Unknow
Legend
June 10, 2012

My tip:

1) You must show 'restore' button if you want to show 'feel and use' interface.

2) Already purchased without 'restore' button - users will think that they must pay again. This is wrong tactic. They must to see 2 buttons. Purchase and Restore

3) If you try to restore on app loading - your app will be rejected with description like that 'Your application use non standrat purchasing logic' or something similir, I can't remember exact.

So just provide separate 'restore' button near the 'purchase' button.

sbhave
Participating Frequently
June 8, 2012

You just answered yourself .Yes you can keep such button. Also I would recommend you call restoreTransactions on launch if you find that LSO is unavailable. That way user will automatically get all his purchases as he starts using your app.

joeboy_ukAuthor
Inspiring
June 8, 2012

sbhave wrote:

Also I would recommend you call restoreTransactions on launch if you find that LSO is unavailable. That way user will automatically get all his purchases as he starts using your app.

isn't that a bit wierd - it means that as soon as the app is launched for the first time it will ask the user for their password with the dialog box - that's not normal behaviour for an app. I would imagine the user being dubious about entering it when they didn't expect anything to start downloading

and with regard to the restore button always behing there - isn't that weird for someone who has never purchased anything to see a button that says "restore purchases". I've never seen either of these two implementations on an app before. Isn't there a way to detect if the user has any purchases to restore before you offer them an automatic restore or a manual one?

Colin Holgate
Inspiring
June 8, 2012

I have seen a restore purchases button before. But, is it possible to do the restore call to find out if that user has any add-ons they have bought, and only then show the restore button? Or, have an info page about the add-ons, and on that page show them a button to do a restore of already bought items.