store.restore doesn't call back if there is no items to restore

this drives me mad, i simply want to have a restore button calling store.restore() after init, but yes, as already mentioned, its screwed up if no iAP has been made before.

I did do the timeout thing, telling the user nothing to restore or request timeout. that should do it for now. [import]uid: 90610 topic_id: 28055 reply_id: 116527[/import]

Just to answer some of the questions above on time-out interval. For what it’s worth, we ended up doing a 30s timeout interval to make sure that even if you are on a slow cellular network, we still have a good chance of accounting for the network delay. It’s definitely not perfect, and we have had false negatives in some of our testing, but this is the best we are able to do for now… [import]uid: 41124 topic_id: 28055 reply_id: 129958[/import]

Just to answer some of the questions above on time-out interval. For what it’s worth, we ended up doing a 30s timeout interval to make sure that even if you are on a slow cellular network, we still have a good chance of accounting for the network delay. It’s definitely not perfect, and we have had false negatives in some of our testing, but this is the best we are able to do for now… [import]uid: 41124 topic_id: 28055 reply_id: 129958[/import]

So, still nothing on this?  A timer is an awful solution.   It really irritates me that I go through so much effort to cover every use case and build in a great customer experience…and then something like this comes along and just ruins all of that.  

So, still nothing on this?  A timer is an awful solution.   It really irritates me that I go through so much effort to cover every use case and build in a great customer experience…and then something like this comes along and just ruins all of that.  

HI,

I am having this issue on android, anybody find  a solution?

Surely there is a better way than using a timeout ?

right, going with the timeout .

Sigh… Once again the great Corona SDK stumbles greatly on the small details.  Another issue that has been known about for years and has not received any attention for a fix.  These are the things keeping our apps from being truely some of the best out there.

I don’t see why this is a problem.  If there is nothing to restore, there is nothing to return.  If you program under the assumption that your app’s features should be locked and if you get a restore, you unlock features that need unlocked and if nothing happens they stay locked, then you shouldn’t need this to return something when there is nothing to return.

Or am I missing something?  Why do you need restore to return “there is nothing to restore”?

The problem is that there is never a callback to the store listener.  So while someone who has never made purchases shouldn’t be pushing the “restore purchases” button in our app, even if they do, we would want to have a message appear to the user that could say something like “You have no purchases to restore”.

Bottomline, the store listener never gets a response if the user has not purchased anything. (It would be nice even if it got a “failed” response).  It just does nothing, so you don’t know if its just taking forever, or if there are no purchases to be restored.

EDIT: A reason I want it to have a response would be the fact that while I check to see if I need to unlock things in the app, I want to lock my menu so that the user can’t go to the content selection screens where things are locked and unlocked.  I can’t unlock the menu navigation until I got a response of some kind letting me know that there is nothing to restore.

I’ll check with the engineers.

Thanks Rob, hope it will be something that can be fixed.  There has been lots of developers wanting a real solution to this.

I will try to summarize what the engineer said.  The Apple iOS sdk could do the call back, however it’s not possible with Android.  For API consistency, at this time, they behave the same.  They are aware of the problem but suggest that the timer method is the best option.

I just want to make sure something is clear.   Our store.restore() call does not call the transaction listener on iOS.  We want function to behave the same on both platforms where possible.

HI,

I am having this issue on android, anybody find  a solution?

Surely there is a better way than using a timeout ?

right, going with the timeout .

Sigh… Once again the great Corona SDK stumbles greatly on the small details.  Another issue that has been known about for years and has not received any attention for a fix.  These are the things keeping our apps from being truely some of the best out there.

I don’t see why this is a problem.  If there is nothing to restore, there is nothing to return.  If you program under the assumption that your app’s features should be locked and if you get a restore, you unlock features that need unlocked and if nothing happens they stay locked, then you shouldn’t need this to return something when there is nothing to return.

Or am I missing something?  Why do you need restore to return “there is nothing to restore”?

The problem is that there is never a callback to the store listener.  So while someone who has never made purchases shouldn’t be pushing the “restore purchases” button in our app, even if they do, we would want to have a message appear to the user that could say something like “You have no purchases to restore”.

Bottomline, the store listener never gets a response if the user has not purchased anything. (It would be nice even if it got a “failed” response).  It just does nothing, so you don’t know if its just taking forever, or if there are no purchases to be restored.

EDIT: A reason I want it to have a response would be the fact that while I check to see if I need to unlock things in the app, I want to lock my menu so that the user can’t go to the content selection screens where things are locked and unlocked.  I can’t unlock the menu navigation until I got a response of some kind letting me know that there is nothing to restore.

I’ll check with the engineers.