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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
Flutter 如何获取用户的当前订阅状态,以验证订阅是否仍然有效?_Flutter_Google Cloud Firestore_In App Purchase_Google Cloud Pubsub_Google Play Developer Api - Fatal编程技术网

Flutter 如何获取用户的当前订阅状态,以验证订阅是否仍然有效?

Flutter 如何获取用户的当前订阅状态,以验证订阅是否仍然有效?,flutter,google-cloud-firestore,in-app-purchase,google-cloud-pubsub,google-play-developer-api,Flutter,Google Cloud Firestore,In App Purchase,Google Cloud Pubsub,Google Play Developer Api,我正在构建一个使用freemium模型的颤振应用程序 我正在我的应用程序中使用in_app_purchase Flatter软件包,因此用户现在可以升级到每月付费订阅。在阅读了添加订阅特定功能的文档之后,它说“您还应该启用实时开发人员通知”,我现在已经这样做了 根据这段视频,只要现有订阅有更新,我就会直接从云发布/订阅收到购买令牌。此购买令牌不包含更改的详细信息。因此,我需要将购买令牌从安全后端发送到GooglePlayDeveloperAPI,以获取附加到购买令牌的更新信息。一旦验证,我将拥有

我正在构建一个使用freemium模型的颤振应用程序

我正在我的应用程序中使用in_app_purchase Flatter软件包,因此用户现在可以升级到每月付费订阅。在阅读了添加订阅特定功能的文档之后,它说“您还应该启用实时开发人员通知”,我现在已经这样做了

根据这段视频,只要现有订阅有更新,我就会直接从云发布/订阅收到购买令牌。此购买令牌不包含更改的详细信息。因此,我需要将购买令牌从安全后端发送到GooglePlayDeveloperAPI,以获取附加到购买令牌的更新信息。一旦验证,我将拥有关于订阅的修订信息,这些信息可以存储在我的后端服务器上,如果需要,也可以发送到我的Android应用程序,以确保用户能够访问适当的应用程序内内容和服务

我正在使用CloudFireStore作为应用程序的后端

我的问题是:如何获取用户的当前订阅状态,以验证订阅是否仍然有效?我认为我需要使用Purchases.subscriptions:get,它检查用户的订阅购买是否有效并返回其到期时间——但我不确定在flutter中如何实际执行此操作。如何在flutter中实现这一点

提前感谢您的帮助


杰森

我找到了一个很好的解决方案。最后我只是用了RevenueCat。它处理一切。您甚至不需要使用谷歌发布/订阅或实时开发者通知。太容易了!这是文件:

一旦安装完成,这非常简单,我只需使用:

try {
  PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();
  if (purchaserInfo.entitlements.all["my_entitlement_identifier"].isActive) {
    // Grant user "pro" access
  }
} catch (e) {
  // Error fetching purchaser info
}

希望这个答案对将来的人有所帮助——一旦我弄明白了,它就为我节省了很多工作和时间

我找到了一个很好的解决办法。最后我只是用了RevenueCat。它处理一切。您甚至不需要使用谷歌发布/订阅或实时开发者通知。太容易了!这是文件:

一旦安装完成,这非常简单,我只需使用:

try {
  PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();
  if (purchaserInfo.entitlements.all["my_entitlement_identifier"].isActive) {
    // Grant user "pro" access
  }
} catch (e) {
  // Error fetching purchaser info
}
希望这个答案对将来的人有所帮助——一旦我弄明白了,它就为我节省了很多工作和时间