DiscountOffer class

Standardized one-time product discount offer. Provides a platform-neutral OpenIAP shape for Google Play one-time product purchase options and offers.

Currently populated only on Android (Google Play Billing 8.0+). iOS does not populate this type.

@see https://openiap.dev/docs/types/discount-offer

Constructors

DiscountOffer({required String currency, String? discountAmountMicrosAndroid, required String displayPrice, String? formattedDiscountAmountAndroid, String? fullPriceMicrosAndroid, String? id, LimitedQuantityInfoAndroid? limitedQuantityInfoAndroid, List<String>? offerTagsAndroid, String? offerTokenAndroid, int? percentageDiscountAndroid, PreorderDetailsAndroid? preorderDetailsAndroid, required double price, String? purchaseOptionIdAndroid, RentalDetailsAndroid? rentalDetailsAndroid, required DiscountOfferType type, ValidTimeWindowAndroid? validTimeWindowAndroid})
const
DiscountOffer.fromJson(Map<String, dynamic> json)
factory

Properties

currency String
Currency code (ISO 4217, e.g., "USD")
final
discountAmountMicrosAndroid String?
Android Fixed discount amount in micro-units. Only present for fixed amount discounts.
final
displayPrice String
Formatted display price string (e.g., "$4.99")
final
formattedDiscountAmountAndroid String?
Android Formatted discount amount including its currency sign (e.g., "$5.00").
final
fullPriceMicrosAndroid String?
Android Original full price in micro-units before discount. Divide by 1,000,000 to get the actual price. Use for displaying strikethrough original price.
final
hashCode int
The hash code for this object.
no setterinherited
id String?
Unique identifier for the offer.
final
limitedQuantityInfoAndroid LimitedQuantityInfoAndroid?
Android Limited quantity information. Contains maximumQuantity and remainingQuantity.
final
offerTagsAndroid List<String>?
Android List of tags associated with this offer.
final
offerTokenAndroid String?
Android Offer token required for purchase. Must be passed to requestPurchase() when purchasing with this offer.
final
percentageDiscountAndroid int?
Android Percentage discount (e.g., 33 for 33% off). Only present for percentage-based discounts.
final
preorderDetailsAndroid PreorderDetailsAndroid?
Android Pre-order details if this is a pre-order offer. Available in Google Play Billing Library 8.1.0+
final
price double
Numeric price value
final
purchaseOptionIdAndroid String?
Android Purchase option ID for this offer. Used to identify which purchase option the user selected. Available in Google Play Billing Library 8.0+
final
rentalDetailsAndroid RentalDetailsAndroid?
Android Rental details if this is a rental offer.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
type DiscountOfferType
Offer category. DiscountOffer currently represents Android one-time product offers and is populated as OneTime. Introductory and Promotional are used by SubscriptionOffer.
final
validTimeWindowAndroid ValidTimeWindowAndroid?
Android Valid time window for the offer. Contains startTimeMillis and endTimeMillis.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited