I am following https://unity3d.com/learn/tutorials/topics/analytics/integrating-unity-iap-your-game to build the IAP.
It’s working fine for purchasing Consumable, Nonconsumable and Subscription.
I met a problem with restoring transactions on IOS (not tested on Android).
From Unity - Manual: Restoring Transactions,
- “When a user reinstalls your application they should be granted any Non-Consumable or Subscription products they already own”
- “ProcessPurchase method of your IStoreListener will be invoked for any items the user already owns.”
I expect the Non-Renewing Subscription will be restored.
But there is some problems when I test on a real device with sandbox user.
Case 1:
UserA purchase “Non-Renewing Subscription”
Reinstall the game
Call “RestorePurchases()”. “ProcessPurchase()” is not invoked
Case 2:
UserB purchase “Non-Renewing Subscription”
Reinstall the game
UserB purchase “Nonconsumable”
Call “RestorePurchases()”. “ProcessPurchase()” is invoked 1 time (for Nonconsumable)
Case 3:
UserC purchase “Non-Renewing Subscription”
Reinstall the game
UserC purchase “Nonconsumable”
UserC purchase “Nonconsumable”
Call “RestorePurchases()”. “ProcessPurchase()” is invoked 2 times (for 2 Nonconsumables)
Case 4:
UserD purchase “Nonconsumable”
Reinstall the game
Call “RestorePurchases()”. “ProcessPurchase()” is invoked 1 time (for Nonconsumable)
UserD purchase “Non-Renewing Subscription”
Call “RestorePurchases()”. “ProcessPurchase()” is invoked 1 time (for Nonconsumable)
It seems that “ProcessPurchase” is not invoked for “Non-Renewing Subscription”.
Is it correct?
Thank you for reading this and sorry about my English.