通过 Play 商店退款 in_app_purchases 后未收到 PurchaseStatus.cancel 通知

问题描述 投票:0回答:1

我正在 flutter 中使用 in_app_purchase 插件来处理 Google Play 商店的非消耗性产品(高级功能)的购买。我成功使用我的测试用户(开发者帐户)购买了产品

但是,当我请求退款时,即使退款已获得批准,我也没有在 InAppPurchase.instance.purchase 流中收到来自应用程序的取消通知。我完全确定我一直在听直播。

我什至尝试在退款后再次购买,以确保购买退款。我可以第二次购买,但没有收到取消通知。

您能帮我了解如何获取取消通知吗?我没有使用任何后端服务器,但我知道出于安全目的我将来应该使用。

flutter google-play
1个回答
0
投票

不幸的是,截至目前,还没有取消购买的收听。但如果产品被取消,它将从购买清单中消失。您可以通过检查历史记录来取消高级功能,如下所示:

  void _checkPremiumFeature() async {
    List<GooglePlayPurchaseDetails>? history = await queryPastPurchasesForAndroid();

    if (history == null) return;

    bool purchased = false;

    // check if any past purchase
    for (var purchase in history) {
      logger.w(
          'Purchased product found in history: ${purchase.productID}, status: ${purchase.status}');

      if (purchase.status == PurchaseStatus.purchased ||
          purchase.status == PurchaseStatus.restored) {
        purchased = true;
      }
    }

    if (!purchased) {
      logger.w('No purchased products found in history');
    }

    _accessDbProvider.setPremium(purchased);
  }
© www.soinside.com 2019 - 2024. All rights reserved.