IAP Receipt validation failing for some users

Hi all,


I have an app in the AppStore that was converted from a paid to a fremium model about a year ago.


I do receipt validation in the App, and successfully check for the app original purchase version to check if user should have full access to app or not. I also check for the IAP purchase on the receipt, and enable the app as necesary.


Every update I make to the app, I get probably 2-3% of the users complaining that the IAP stopped working for them. Users are treated by the app as if they had never made a IAP, or bought the app before. On analytics, I can see that the validation worked large majority of users, but it seems there's always a small group of users that have problems. Some users are original buyers of the app, while others are IAP users.


On documentation, Apple mentions that receipts should be always available on the device, and if not you should ask for a refresh. I currently do that, and from my tests this works properly. Also, from analytics I can see the vast majority of users simply gets a new receipt automatically with the update.


I always ask users to delete app from the device and download it again from the AppStore, which forces the receipt refresh, and that works well for many, but not all.


Has anyone else experienced problems like this? How have you solved/worked around this issue?


I have spent a lot of time testing/debugging the validation code and all looks fine, but obviously that could still have bugs, and I'm still looking into it.


Thanks,

Eduardo

For clarity, you worte:


"validation worked large majority of users, but it seems there's always a small group of users that have problems. Some users are original buyers of the app, while others are IAP users." Do you mean that some users WHO DON'T GET VALIDATION are original buyers of the app while other users WHO DON'T GET VALIDATION are IAP users? Or is the problem just with one or the other type?


"I always ask users to delete app from the device and download it again from the AppStore, which forces the receipt refresh, and that works well for many, but not all." Are you here referring to needing to refresh the receipt even if the app is deleted and downloaded again? You should expect that based on exactly how the app is downloaded into the device - there are a few different methods. But is your problem that you don't refresh the receipt and tehrefore get no validation? Or do you refresh the receipt and then fail validation.

From what I could gather, the issue is that I refresh the receipt and then it fails validation. Validation works for the majority of users, but somehow some simply fail. I couldn't yet completely understand why this is happening though. I couldn't reproduce this in any testing, so now I'm adding more tracking on the client app, hoping I can catch what's happening.


Thanks for the reply PBK.

IAP Receipt validation failing for some users
 
 
Q