I am using flutter_inapp_purchase to display 16 different subscription plans. Each plan includes a 7-day free trial configured in both Google Play Console and App Store Connect. Currently, when fetching products, the displayPrice returns 0 or Free.
Users need to see the actual price they will be charged after the 7-day trial ends (e.g., "7 days free, then ₹999/month"). However, the plugin does not provide a unified way to get the base/original recurring price without complex manual parsing of native sub-objects.
Steps to Reproduce:
Configure a subscription product in Play Console/App Store Connect with a 7-day free trial.
Fetch the product details using getProducts().
Observe the value of product.displayPrice.
Expected Behavior: There should be a consistent property (like basePrice or recurringPrice) that returns the price of the subscription after the introductory period ends, regardless of whether a free trial is active.
Actual Behavior:
Android: displayPrice returns "Free". To get the real price, one must loop through subscriptionOfferDetailsAndroid -> pricingPhases -> pricingPhaseList and filter by recurrenceMode.
iOS: displayPrice returns "Free". The actual price is hidden inside introductoryPrice logic or requires manual formatting of the price double and currency.
I am using flutter_inapp_purchase to display 16 different subscription plans. Each plan includes a 7-day free trial configured in both Google Play Console and App Store Connect. Currently, when fetching products, the displayPrice returns 0 or Free.
Users need to see the actual price they will be charged after the 7-day trial ends (e.g., "7 days free, then ₹999/month"). However, the plugin does not provide a unified way to get the base/original recurring price without complex manual parsing of native sub-objects.
Steps to Reproduce:
Configure a subscription product in Play Console/App Store Connect with a 7-day free trial.
Fetch the product details using getProducts().
Observe the value of product.displayPrice.
Expected Behavior: There should be a consistent property (like basePrice or recurringPrice) that returns the price of the subscription after the introductory period ends, regardless of whether a free trial is active.
Actual Behavior:
Android: displayPrice returns "Free". To get the real price, one must loop through subscriptionOfferDetailsAndroid -> pricingPhases -> pricingPhaseList and filter by recurrenceMode.
iOS: displayPrice returns "Free". The actual price is hidden inside introductoryPrice logic or requires manual formatting of the price double and currency.