Hi all
I've been testing tapjoy virtual currency and come across a problem with preventing users cheating.
Consider this scenario:
Player launches game and earns or buys in game currency.
Player quits game and disables data on their device.
Player re launches game and spends currency, but currency server can't be
updated as no internet.
Player quits game, turns data back on and then launches game again.
Older currency value is restored from server meaning previous purchases were
free.
The obvious thing to do is to store pending currency transactions in a separate value and reconcile these when internet is available. But on Android, if the user goes into task manager and clears the app's data, the record is lost and there's no choice but to use the server's currency amount.
Any suggestions to fix this loophole?












This is probably an issue for Tapjoy to remedy, a big oversight on their part I reckon. Are they aware of the loophole?
Hi Jay,
(Have no idea how the tapjoy SDK works but ...)
Can't a check for internet connection (Marmalade can do this) be made, and if a connection is not available disallow any use of virtual currency (i.e. don't call into the tapjoy SDK)?
A polite message about virtual currency purchases requiring a internet connect could be displayed.
-David
it could with some games, but in my case the virtual currency is used to buy a consumeable item each time you play, so it might interfere with gameplay to an unacceptable degree e.g. if on a train and the signal is patchy. I think in future i`ll try to structure games around using currency to purchase permanent bonuses/unlocks.
I did email tapjoy about it - will post the details if i get a useful response