Unity IAP strange behavior

Hi there! I’am using 2019.2.14f and the latest 1.23.1 IAP. User device Galaxy J7 Crown, Android 9.
Here is my use case
1)User bought item.
2)Item state somehow changes (i don’t know where, it’s not so important here)
2)User still have locked item state and try to unlock by clicking buy button and it was start charging dialog and user got DuplicateTransaction error. In this place i should handle this and unlock, but i want to investigate what is going on.
3)I asked user to clear app’s cache.
4)After that he saw buy this dialog again, click buy, but instead of previous steps(charge, duplicate error) he got item immediately without asking to charge.
So i think you should check this cache-dependent case.

btw, Should i save receipts manually after purchasing? And can i init IAP without internet?

IAP requires Internet access. You typically don’t want to save receipts. Please see the comments on our last release here, you would want to consider awarding the user the product in the case of DuplicateTransaction, so far it seems behavior of the Google API Unity IAP package 4.12.2 is now available page-2#post-5215856

I mean save receipts if i want to check them when user is offline (using CrossPlatformValidator) and i don’t have access to store controller with items.

And related to described behavior i just want to say,that it is strange when problem could be solved by deleting cache.

You only need to check receipts during purchase and restore, not each game launch. But you are welcome to do this if you feel necessary.