[Solved] Restoring Non-Renewing Subscription

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.

@ppl2

Thanks for alerting us to this issue. I’ve asked our engineers to take a look into this. I will let you know what they find.

@ppl2

Sorry for the delayed response. It turns out this was just a documentation issue. On iOS, only Auto-renewing subscriptions are restored.

We have updated our Manual to reflect this. I apologize for any inconvenience this has caused.