Hello,
I implemented a subscription plan with 7 days of trial in my app using Flutter SDK version 3.2.2.
Since I didn’t find an example for Flutter, I used this iOS code as a reference to implement the text for Trials period:
I currently see some strange behavior after the user started the trial and cancel it before the trial ended.
When the user opens the subscription screen again after the trial ended, I’m using the getOfferings function to fetch the current offerings and I still get the introductoryPrice object.
In the code example above I see that you check if the introductoryPrice object is not nil and based on this show to the user the introductory price text.
So now, If the user cancels the trial, and then wants to subscribe again, It seems like the intro price is available but in fact, when he makes the purchase he will be billed immediately without any trial period.
The exact scenario to reproduce it:
- Start free trial on iOS
- Before the trial ends, Cancel the trial via the app store subscriptions screen.
- Wait until the trial ended when the user lost his entitlement.
- use the function getOfferings to get the current offerings.
Expected:
introductoryPrice will be null or introPricePeriodNumberOfUnits will be 0.
Actual:
introductoryPrice is not null and introPricePeriodNumberOfUnits is bigger the 0 (in my case it 7 days)
Is this is a bug? If not what is the practice in flutter to check the introductory price if not checking the introductoryPrice object?
Thanks,
Tomer.