Flutter in_app_purchase问题:在iOS中,沙盒中有效,但在实际付款中无效

问题描述

我在flutter应用中添加了in_app_purchase插件以进行付款。它在android和sandbox上完美运行,但是在发布应用程序后,它不能与真实卡一起正常使用。付款成功完成,应该已经添加了硬币,但是没有添加。

这是我的代码:

  _initialize() async {
    _available = await _iap.isAvailable();
    if (_available) {
      await _getProducts();
      _subscription =
          _iap.purchaseUpdatedStream.listen((purchases) => setState(() {
                print('New purchase');
                _purchases.addAll(purchases);
                Platform.isIOS ? _getPastPurchases() : _verifyPurchase();
              }));
    }
  }



  Future<void> _getPastPurchases() async {
    QueryPurchaseDetailsResponse response = await _iap.queryPastPurchases();
    print(response.pastPurchases);
    for (PurchaseDetails purchaseDetails in response.pastPurchases) {
      print('Purchase status: ${purchaseDetails.status}');
      _iap.completePurchase(purchaseDetails);

      if (purchaseDetails.status == PurchaseStatus.purchased) {
        _verifyPurchase();
      }
    }
    if(mounted) {
      setState(() => _purchases = response.pastPurchases);
    }
  } 

// the problem somewhere in _getPastPurchases method,I try to complete purchases,and then verify it

    _verifyPurchase() {
    PurchaseDetails purchaseDetails = _hasPurchased(widget.productID);
    if(purchaseDetails != null && purchaseDetails.status == PurchaseStatus.purchased) {
         // my logic to add purchased coins
     }
  } 

//Probably,purchaseDetails.status == PurchaseStatus.purchased condition is false somehow,//but I don't know what's wrong and then why in sandbox is working correctly

预先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)