首页 > 解决方案 > Flutter 如何使用 in_app_purchase 插件实现订阅?

问题描述

我正在使用 in_app_purchase ( https://pub.dev/packages/in_app_purchase ) Flutter 插件来实现订阅。

我不明白如何检查某个用户是否仍被订阅:queryPastPurchases 方法为每个订阅返回一个 PurchaseDetails 对象,但我找不到当前订阅的“状态”(活动/非活动等)......

我可以检查 transactionDate 字段,但这不是一个好的解决方案。

Appriciate 对此问题的任何帮助

标签: flutter

解决方案


遍历每个 PurchaseDetails,如果purchase.billingClientPurchase.sku == "your_subscriptionID"则存在活动订阅。如果用户取消订阅并且已超过结束期限(30 天),则response.pastPurchases 列表将不包含“your_subscriptionID”的订阅/购买。

for (PurchaseDetails purchase in response.pastPurchases) {

    if(purchase.billingClientPurchase.sku == "your_subscriptionID"){
      hasSubscription = true;
    }

    if (Platform.isIOS) {
      InAppPurchaseConnection.instance.completePurchase(purchase);
    }
  }

推荐阅读