getSubscriptionToken function
Returns the token for a SUBSCRIPTION to be used with VerifyLocalPurchase.verifySubscription.
- iOS/macOS: parses
localVerificationDataJSON to extractoriginalTransactionId, which is stable across renewals and restores. - Android: returns
purchase.verificationData.serverVerificationData(the subscription token).
Example:
final token = getSubscriptionToken(purchase);
final isActive = await VerifyLocalPurchase().verifySubscription(token);
Implementation
String getSubscriptionToken(PurchaseDetails purchase) {
if (Platform.isIOS || Platform.isMacOS) {
// iOS/macOS: parse localVerificationData JSON to get originalTransactionId
// The originalTransactionId is stable across renewals and restores
final data = jsonDecode(purchase.verificationData.localVerificationData);
return data['originalTransactionId'] as String;
} else {
// Android: use serverVerificationData (contains the subscriptionToken)
return purchase.verificationData.serverVerificationData;
}
}