"Buy All" In-App Purchase Causing Unnecessary Purchases If App Re-Installed

Go To StackoverFlow.com

1

We're working on a game that has 4 in-app purchases. Add'l Content A, Add'l Content B, Add'l Content C, and Buy All.

The add'l content is just unlocked from within the app, nothing is downloaded.

So here's the steps leading up to the issue I'm having.

The user purchases the "Buy All" item. The code knows this was bought and unlocks all Add'l Content A,B,C. The game saves that everything is purchased so when you go to the store again all the buttons are unavailable.

The user then re-installs the app (new phone, same phone, etc).
Since all of the save data for in-app purchases is lost, when they go to the store all the items are available again. Now if:

a) The user selects "Buy All" again, the app store lets it happen for free since it's a re-download, the code unlocks and saves everything and all is well.

However, and here's where the problem is, if they:

b) Select to buy Add'l Content A. Now, even though Buy All was selected in the past, there's no local record of Buy All being purchased or the content being unlocked, and since the user never actually purchased item Add'l Content A, the App Store charges for it (no re-download). The content is unlocked, but if the user re-does Buy All again, they'll get a free re-download and all the content but were charged twice for Add'l Content A.

The problem lies with the fact that I don't think there's a way for one registered in-app purchases to mark the others as purchased, even though the content bought with them was via the Buy All.

I've come up with some solutions for this but I don't know which ones are valid or even allowed by Apple

1) Do nothing, let the user lose an extra $.99.

2) Put a "Restore Purchases" button which will call for the restore, ask for the user password again, and update all unlocked content as necessary. This would solve the problem but the user still might not select it AND that button was never in our game's original design. Not a big deal for me but the client might not like it.

3) Automatic restore purchase check. I know you're not supposed to do this every login, but it could be called automatically the first time the user goes into the store or the first time the user tries to buy something.

Are any of these valid solutions, or is there something else I could do to prevent double-purchasing content? I'm a bit more worried about Apple standards than the users really, but I gotta make sure I get this right the first time.

Thank you -Mo

2012-04-04 23:47
by MoProductions


1

Does your Buy All purchase cost less, than sum of A B C?

If no, you could just buy an NSSet of all the A,B and C, instead of making one more product.

You may also try to restore the transactions,when a user tap an A prodcut and check,if he has already bought it first,and then let him buy it.

2012-04-05 13:53
by Nikita Pestrov
Ads