Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Flatter中查看App购买中的freeTrialPeriod过期日期_Android_Flutter_Dart_In App Purchase_Flutter In App Purchase - Fatal编程技术网

Android 如何在Flatter中查看App购买中的freeTrialPeriod过期日期

Android 如何在Flatter中查看App购买中的freeTrialPeriod过期日期,android,flutter,dart,in-app-purchase,flutter-in-app-purchase,Android,Flutter,Dart,In App Purchase,Flutter In App Purchase,在颤振中使用颤振InApp采购实施InApp采购(非消耗性)。 我有三个计划1个月、6个月和1年,现在我正在检查是否有1个月的计划,然后检查交易数据,并加上30天检查其他两个计划的到期日期相同, 但问题是,当用户处于试用期时,我如何检查试用期的到期日期 List<String> storeItems = ['onemonth', 'sixmonth', 'oneyear']; List<IAPItem> subscriptions = []; List<Purcha

在颤振中使用颤振InApp采购实施InApp采购(非消耗性)。 我有三个计划1个月、6个月和1年,现在我正在检查是否有1个月的计划,然后检查交易数据,并加上30天检查其他两个计划的到期日期相同, 但问题是,当用户处于试用期时,我如何检查试用期的到期日期

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
}
List storeItems=['onemonth'、'sixmonth'、'oneyear'];
列表订阅=[];
列出采购订单订购=[];
StreamSubscription\u purchaseUpdatedSubscription;
StreamSubscription\u purchaseErrorSubscription;
流订阅(连接订阅);;
initPurchaseState(SportsProvider SportsProvider)异步{
打印(“初始购买状态”);
等待flatterinapppurchase.instance.initConnection;
如果(!已安装)返回;
_连接订阅=
FlatterInAppPurchase.connectionUpdated.listen((已连接){
打印('connected:$connected');
});
_purchaseUpdatedSubscription=
flatterinapppurchase.purchaseUpdated.listen((productItem){
var数据=jsonDecode(productItem.transactionReceipt);
int purchaseState=data[“purchaseState”];
字符串productId=data[“productId”];
字符串purchaseToken=数据[“purchaseToken”];
打印(“数据:${Data.toString()},${purchaseState},${productId},${purchaseToken}”);
打印(“采购更新:$productItem”);
flatterinapppurchase.instance.finishTransaction(productItem);
});
_purchaseErrorSubscription=
flatterinapppurchase.purchaseError.listen((purchaseError){
打印('purchase-error:$purchaseError');
});
订阅=
等待apppurchase.instance.getSubscriptions(storeItems);
//打印(“订阅:${subscriptions}”);
//forEach((f){print(“订阅:${f.freetrialperiondroid}”);});
forEach((f){print(“subscriptionPeriodAndroid:${f.subscriptionPeriodAndroid}”);});
forEach((f){print(“subscriptionPeriodAndroid:${f.toString()}”);});
forEach((f){print(“subscriptionPeriodAndroid:${f.originalJson}”);});
//在这里,我们通过passig productId和天数检查1个月订阅是否可用
var isSubscribedForMonth=wait flatterinapppurchase.instance.checkSubscribed(sku:subscriptions[0]。产品ID,持续时间:持续时间(天:30));
打印(每月发布订阅);
//在这里,我们通过passig productId和天数检查1个月订阅是否可用
var isSubscribedForSixMonth=wait flatterinapppurchase.instance.checkSubscribed(sku:subscriptions[1]。产品ID,持续时间:持续时间(天:180));
打印(已订阅六个月);
//一年也一样
//但如何确定当前订阅是否处于试用期?
//已订阅的代码
}
有没有办法确定当前期间是试用期还是常规期

我已经尝试过这样的解决方案,但没有得到任何与我的问题相关的解决方案

请帮我解决这个问题

如果需要更多的澄清,请发表评论