On IOS platform, when I buy an In-App at first time and ProcessPurchase in IStoreListener is finished with result PurchaseProcessingResult.Pending, and next I try to buy the In-App again and the message 'This in-app purchase has already been bought. It will be restored for free" is appeared. But Unity doesn't call ProcessPurchase and I can't give the item for a player.
@JeffDUnity3D So it's for all product types (Consumable,NonConsumable,Subscription). Because I do validation for this InApp on PlayFab.
You first need to finish the previous Pending transaction before attempting to purchase again. If it's in Pending, it should trigger ProcessPurchase on the next app launch. You can also call ConfirmPendingPurchase. https://docs.unity3d.com/Manual/UnityIAPProcessingPurchases.html