Subscription module
- Enum:
AffiseModules.SUBSCRIPTION(lib/module/affise_modules.dart:14) - Native key:
"Subscription"(lib/module/affise_modules.dart:47) - Dart accessor:
Affise.module.subscription→AffiseModuleSubscriptionApi - Implementation:
lib/module/subscription/affise_subscription.dart:13 - API:
lib/module/subscription/affise_module_subscription_api.dart:8
Purpose
Section titled “Purpose”README 528-573 — product fetch and purchase flows for Google Play Billing (Android) and StoreKit 2 (iOS).
Platform
Section titled “Platform”Cross-platform.
Native setup
Section titled “Native setup”- Android:
implementation "com.affise:module-subscription:$affise_version" - iOS:
pod 'AffiseModule/Subscription', affise_version
Dart API
Section titled “Dart API”void fetchProducts( List<String> ids, AffiseResultCallback<AffiseProductsResult> callback); // lib/module/subscription/affise_subscription.dart:19void purchase( AffiseProduct product, AffiseProductType type, AffiseResultCallback<AffisePurchasedInfo> callback); // :29Future<bool> hasModule(); // :39typedef AffiseResultCallback<T> = void Function(AffiseResult<T> result); — lib/module/affise_result_callback.dart:3.
Result type
Section titled “Result type”class AffiseResult<S> { S get asSuccess; String get asFailure; bool get isSuccess; bool get isFailure; static AffiseResult<T> Success<T>(T value); static AffiseResult<T> Failure<T>(String error);}lib/module/affise_result.dart:1-24.
Data classes
Section titled “Data classes”AffiseProduct(productId, title, description, productType, subscription?, price?)—lib/module/subscription/affise_product.dart:5-32AffiseProductPrice(value, currencyCode, formattedPrice)—lib/module/subscription/affise_product_price.dart:1-16AffiseProductSubscriptionDetail(offerToken?, offerId?, timeUnit?, numberOfUnits?)—lib/module/subscription/affise_product_subscription_detail.dart:3-20AffiseProductsResult(products, invalidIds)—lib/module/subscription/affise_products_result.dart:3-16AffisePurchasedInfo(product?, orderId?, originalOrderId?, purchase?)—lib/module/subscription/affise_purchased_info.dart:3-20
AffiseProductType
Section titled “AffiseProductType”lib/module/subscription/affise_product_type.dart:1-14 (native keys at :18-27):
| Enum | Native key |
|---|---|
| CONSUMABLE | "consumable" |
| NON_CONSUMABLE | "non_consumable" |
| RENEWABLE_SUBSCRIPTION | "renewable_subscription" |
| NON_RENEWABLE_SUBSCRIPTION | "non_renewable_subscription" |
TimeUnitType
Section titled “TimeUnitType”lib/module/subscription/time_unit_type.dart:1-13 (native keys at :18-27):
| Enum | Native key |
|---|---|
| DAY | "day" |
| WEEK | "week" |
| MONTH | "month" |
| YEAR | "year" |
Subscription events
Section titled “Subscription events”For reporting lifecycle events (activation, cancellation, renewal, etc.), see the subscription-events table in Events tracking.
ProviderType contributions
Section titled “ProviderType contributions”UNVERIFIED: ProviderType additions — the README does not enumerate.