[Closed] current best approach for free subscription trials

Hi,

I am running in circles - hope someone can get me sorted out.

I try to implement IAP (Unity IAP) based for Google Play, Apple and Amazon - with a single subscription that enables premium content in my app. What I want to give my users is a free trial so they can play with the app (3 days on GP/Apple, 7 days in Amazon) and then either cancel or proceed with premium (paid) experience.

Now - the purchasing is easy - all works fine out of the box (I used IAP for nonSubscriptions earlier). But I struggle to understand how to get a bool IsSubscriptionStillValid() implemented. Am I correct that:

  1. This is not doable without a server side logic
  2. This server side logic is not supported / included in Unity IAPs

Or am I wrong and recent Unity IAP updates have this included? If so - any guidance how to get this done?

If server side logic is required - how to get this done as of December 2017?

Is there any paid asset that could help me out?

One thing to note - I am ok with experienced Android users who will use root’ed devices and use the subscription endlessly. Just need to handle the vast majority of casual users who will purchase the free trial and cancel - I need to ensure their access to premium content in my app is stopped when they cancel.

regards,
Piotr

@pl_ayground I know that we are working to improve subscription support, I will check with the IAP
team here and get back to you.

1 Like

Thanks @JeffDUnity3D I am looking forward to hear from you (after Christmas and New Year when all the people are back to work).

I believe a robust subscription handling would be a great addition to Unity IAP.

For iOS, you can check the app receipt for a valid subscription in product.receipt. For Google Play for an expired or cancelled subscription, the product will be dropped (null).

@JeffDUnity3D thats great news there is no need for server side validation on cancelled (or expired) subscriptions. Could you please share an example how to exactly use the code you referred to?

I have a product id string SUB_ID = “unlock_subscription.id”; and look for a bool IsSubValid() method to call on each app start to ensure subscription remain active. Thanks in advance!

@pl_ayground This is code that you would need to implement yourself. This link may help Unity - Manual: Receipt validation

Understand. Thanks for clarification. I was actually quite sure this is not doable without a server side validation - happy to hear its not a requriement. Will look into the docs to get this implemented without a server side validation.