Usually the typical (recommended) implementation of Android consumable in-app purchases is (cf TrivialDrive example):
- Purchase
- If purchase OK, consume
- If consumption OK, "provide" the consumable to the application.
I was wondering if instead we could not do:
For the first purchase
- Purchase
- "Provide" to the application
For the subsequent purchases of the same consumable
- Consume the item
- Purchase
- "Provide" to the application
This way the user could recover at least its last consumable purchase (of each consumable) when installing the app on another device by a recovery mechanism. Of course this would require to store locally a "flag" stating that the user was provided with the content of the consumable, to avoid the user to be able to purchase the consumable once, and then "retrieve" it again and again on the same device.
This would be somehow useless for "micro" purchases like a small pack of gold for 50 cts, but for huge fat packs (like the one we usually find a 15-20$) this could be a good thing IMO. Am I missing something important here?
BTW this would also allow to :
- not have to check for not consumed consumable purchases when starting the application.
- limit the error cases where after the consumption (but before providing the app) the app crashes and the user gets nothing (it can still half happen during a subsequent purchase: if the app crashes after the consumption and then the user finally decides to not buy the consumable another time, he will lose the possibility to recover its last purchase if it installs on another device).