Реализуйте покупку InApp (не расходные материалы) во флаттере, используя flutter_inapp_purchase . У меня есть три плана на 1 месяц, 6 месяцев и 1 год, теперь я проверяю, является ли план на 1 месяц, затем проверьте transactionData и добавьте 30 дней, чтобы проверить дату истечения срока действия, аналогичную для других 2 планов, но проблема в том, когда пользователь находится на пробном периоде, тогда как я могу проверить дату истечения пробного периода
List<String> storeItems = ['onemonth', 'sixmonth', 'oneyear'];
List<IAPItem> subscriptions = [];
List<PurchasedItem> purchasesSubscriptions = [];
StreamSubscription _purchaseUpdatedSubscription;
StreamSubscription _purchaseErrorSubscription;
StreamSubscription _conectionSubscription;
initPurchaseState(SportsProvider sportsProvider) async {
print("initPurchaseState");
await FlutterInappPurchase.instance.initConnection;
if (!mounted) return;
_conectionSubscription =
FlutterInappPurchase.connectionUpdated.listen((connected) {
print('connected: $connected');
});
_purchaseUpdatedSubscription =
FlutterInappPurchase.purchaseUpdated.listen((productItem) {
var data = jsonDecode(productItem.transactionReceipt);
int purchaseState = data["purchaseState"];
String productId = data["productId"];
String purchaseToken = data["purchaseToken"];
print("Data : ${data.toString()}, ${purchaseState}, ${productId}, ${purchaseToken}");
print('purchase-updated: $productItem');
FlutterInappPurchase.instance.finishTransaction(productItem);
});
_purchaseErrorSubscription =
FlutterInappPurchase.purchaseError.listen((purchaseError) {
print('purchase-error: $purchaseError');
});
subscriptions =
await FlutterInappPurchase.instance.getSubscriptions(storeItems);
//print("subscriptions: ${subscriptions}");
//subscriptions.forEach((f){print("subscription : ${f.freeTrialPeriodAndroid}");});
subscriptions.forEach((f){print("subscriptionPeriodAndroid : ${f.subscriptionPeriodAndroid}");});
subscriptions.forEach((f){print("subscriptionPeriodAndroid : ${f.toString()}");});
subscriptions.forEach((f){print("subscriptionPeriodAndroid : ${f.originalJson}");});
//Here we check for 1 month subscription is available or not by passig productId and days
var isSubscribedForMonth = await FlutterInappPurchase.instance.checkSubscribed(sku:subscriptions[0].productId,duration: Duration(days: 30));
print(isSubscribedForMonth);
//Here we check for 1 month subscription is available or not by passig productId and days
var isSubscribedForSixMonth = await FlutterInappPurchase.instance.checkSubscribed(sku:subscriptions[1].productId,duration: Duration(days: 180));
print(isSubscribedForSixMonth);
//Same for one year
//But how can identify the current subscription is on trial period?
// code for already subscribed
}
Есть ли способ определить текущий период пробный или регулярный.
Я пробовал, поэтому могу решить, но не получить любое соответствующее решение для моего вопроса,
, пожалуйста, помогите мне с проблемой
если требуются дополнительные разъяснения, просто прокомментируйте