Flutter 获得IAP';s退款,如何确认用户购买?(谷歌游戏)

Flutter 获得IAP';s退款,如何确认用户购买?(谷歌游戏),flutter,google-play,in-app-purchase,Flutter,Google Play,In App Purchase,我已经开发了一个颤振应用程序,并将其发布到谷歌游戏。我在应用程序中使用购买:^0.3.4+5,仅在Android上测试 我的问题是,我已经得到了3个非消耗品IAP的退款,这是迄今为止唯一的IAP 为了实施IAP,我遵循以下指南: 除其他外,该方法的实施者: Future<void> _getUserPastPurchases() async { QueryPurchaseDetailsResponse response = await _iap.queryPastPur

我已经开发了一个颤振应用程序,并将其发布到谷歌游戏。我在应用程序中使用购买:^0.3.4+5,仅在Android上测试

我的问题是,我已经得到了3个非消耗品IAP的退款,这是迄今为止唯一的IAP

为了实施IAP,我遵循以下指南:

除其他外,该方法的实施者:

  Future<void> _getUserPastPurchases() async {
    QueryPurchaseDetailsResponse response = await _iap.queryPastPurchases();
    for (PurchaseDetails purchase in response.pastPurchases) {
      if (Platform.isIOS) {
        InAppPurchaseConnection.instance.completePurchase(purchase);
      }
    }
    setState(() {
      _purchases = response.pastPurchases;
    });
  }
简而言之,这就是我所经历的:

  • 用户购买我的非消耗品IAP。在这一点上,一切都很顺利,在我的游戏机上出现了购买
  • 3天后,由于我现在无法理解的原因,退款被触发(除了我迄今为止的研究和我在这里请求的帮助)
  • 这不是测试退款的问题,说退款不是我自己或购买IAP的用户发起的,我了解用户,我要求在他们的手机上测试。

    另外,我从Android文档中读到:

    购买必须在三天内确认

    注意:本节描述了确认所有采购的新要求。如果您已经通过ConsumeSync()消费了购买,则如果您在3天内消费了购买,则无需进行任何进一步的更改,因为ConsumeSync()会自动确认购买。未能正确确认购买将导致退款。

    注意:此要求仅适用于使用Google Play计费库2.0及更新版本的应用程序。如果您使用的是旧版本的Google Play计费库,或者使用的是AIDL API,则此要求不适用。

    摘自:

    请告知,这是非常关键的,因为我们的应用程序已经在Google Play上,我绝对没有预料到会发生这种情况

    另外,通过阅读我的catlogs,我发现这个插件试图使用v3.0


    谢谢。

    我在这篇文章中找到了答案:
        PurchaseDetails purchase = _purchases.firstWhere((purchase) => purchase.productID == nChargeRemAds, orElse: () => null);
        if (purchase != null && purchase.status == PurchaseStatus.purchased) {
            // Purchase verified
            // Or is it? Do I need an extra step?
        }