Check if App was purchased in IAP case

669 Views Asked by At

I'm struggling to find a way to check in the Store Kit framework a way to check if user already bought the in-app non-consumable item in order to avoid the ""You've already purchased this but it hasn't been downloaded. Tap OK to download it now. [Environment: Sandbox]""

I set my feature hardcoded in the app and save the state in sqlite file, please I'm not looking for answer about best pratice...

I already tried to get the payment callback hoping to trigger SKPaymentTransactionStateRestored buy in such case the callback is not called

any ideas? any?

1

There are 1 best solutions below

1
On BEST ANSWER

AFAIK, there is not way to get that kind of information from StoreKit. If you google a bit, you will find a sort of hack described: trying to silently restore transactions in the first place, so you know which items the users has already bought. Unfortunately, this approach is not Apple-friendly and might be cause of rejection.

What I do to manage a case similar to yours is checking beforehand my local state to know whether the user has already bought the non-consumable item and then show/hide the purchase option. The information can be stored in NSUserDefaults and sync-ed through iCloud if you want to go a step further and make it available across devices and reinstalls.