Skip to content

Subscription module

  • Enum: AffiseModules.SUBSCRIPTION (lib/module/affise_modules.dart:14)
  • Native key: "Subscription" (lib/module/affise_modules.dart:47)
  • Dart accessor: Affise.module.subscriptionAffiseModuleSubscriptionApi
  • Implementation: lib/module/subscription/affise_subscription.dart:13
  • API: lib/module/subscription/affise_module_subscription_api.dart:8

README 528-573 — product fetch and purchase flows for Google Play Billing (Android) and StoreKit 2 (iOS).

Cross-platform.

  • Android: implementation "com.affise:module-subscription:$affise_version"
  • iOS: pod 'AffiseModule/Subscription', affise_version
void fetchProducts(
List<String> ids,
AffiseResultCallback<AffiseProductsResult> callback); // lib/module/subscription/affise_subscription.dart:19
void purchase(
AffiseProduct product,
AffiseProductType type,
AffiseResultCallback<AffisePurchasedInfo> callback); // :29
Future<bool> hasModule(); // :39

typedef AffiseResultCallback<T> = void Function(AffiseResult<T> result);lib/module/affise_result_callback.dart:3.

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.

  • AffiseProduct(productId, title, description, productType, subscription?, price?)lib/module/subscription/affise_product.dart:5-32
  • AffiseProductPrice(value, currencyCode, formattedPrice)lib/module/subscription/affise_product_price.dart:1-16
  • AffiseProductSubscriptionDetail(offerToken?, offerId?, timeUnit?, numberOfUnits?)lib/module/subscription/affise_product_subscription_detail.dart:3-20
  • AffiseProductsResult(products, invalidIds)lib/module/subscription/affise_products_result.dart:3-16
  • AffisePurchasedInfo(product?, orderId?, originalOrderId?, purchase?)lib/module/subscription/affise_purchased_info.dart:3-20

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" |

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" |

For reporting lifecycle events (activation, cancellation, renewal, etc.), see the subscription-events table in Events tracking.

UNVERIFIED: ProviderType additions — the README does not enumerate.