IAP Error 7 - Item Already Owned (using IAP Badger)

My IAP’s are working great however two people on Android have had the Response 7: Item Already Owned response for a specific CONSUMABLE product that they have already purchased many times (all other existing consumable products can still be purchased by them along with new consumable products I’ve added)

Some background - I use IAP Badger which is amazing.  Initially I coded the iOS integration myself using standard Corona libraries and then had a hard time doing the same with Android so I switched to IAP Badger and with 1/4 the code of the initial IOS integration I have a perfectly running monetization system (well almost perfect) along with a perfectly running system within the simulator so huge thanks to them.

What I’m pretty sure has happened is that there was some sort of internet / server failure between the short time that the product was purchased and the time it was consumed which all happens within IAP Badger.  As far as I can tell this has only happened twice out of thousands of purchases.

The question I have is how do I complete the purchase within IAP Badger for a transaction that is half way done because otherwise they won’t be able to buy that particular product ever again?  I imagine using a restore might restore ALL of their purchases and cause other unwanted side effects.  So, any ideas?

Thanks,

Roy

For Google Play, you have to “consume” consumable’s before you can use them again.

Rob

IAP Badger automatically consumes Google Play purchases for you normally.

If the user got as far as receiving the product, then IAP Badger will have requested it be consumed.  Assuming this message never got through, you could:

  • when the user clicks purchase, immediately consume the product
  • in most cases this will fail - because it is unnecessary - so ignore any errors
  • make the purchase as normal through IAP Badger.

Simon

I ended doing something very similar.  If a purchase fails I check the error string and if it contains “Item Already Owned” then I consume it, update my server and continue.  

I think your approach might be better though in case the error string comes back in a different language or the verbiage changes.  

Thanks,

Roy

For Google Play, you have to “consume” consumable’s before you can use them again.

Rob

IAP Badger automatically consumes Google Play purchases for you normally.

If the user got as far as receiving the product, then IAP Badger will have requested it be consumed.  Assuming this message never got through, you could:

  • when the user clicks purchase, immediately consume the product
  • in most cases this will fail - because it is unnecessary - so ignore any errors
  • make the purchase as normal through IAP Badger.

Simon

I ended doing something very similar.  If a purchase fails I check the error string and if it contains “Item Already Owned” then I consume it, update my server and continue.  

I think your approach might be better though in case the error string comes back in a different language or the verbiage changes.  

Thanks,

Roy