首页 > 解决方案 > Flutter:如何设置非消耗品购买?

问题描述

我想在我的应用程序中设置非消耗品购买。我找到了很多关于消耗品购买的教程,但不幸的是我没有找到任何关于非消耗品的文章。

我尝试使用 in_app_purchase 包,但它不起作用。

 final String testIdAdvanced = 'advanced_training';
 InAppPurchaseConnection _iap = InAppPurchaseConnection.instance;
 bool _available = true;
 List<ProductDetails> advancedProducts = [];
 List<ProductDetails> advancedPurchases = [];
 StreamSubscription _subscription;

 void _initialize() async {
   _available = await _iap.isAvailable();

   if (_available) {
     await _getProducts();
     await _getPastPurchases();

   }
 }

 Future<void> _getProducts() async {
   Set<String> ids = Set.from([testIdAdvanced, 'test_a']);
   ProductDetailsResponse response = await _iap.queryProductDetails(ids);

   setState(() {
     advancedProducts = response.productDetails;
   });
 }

 // Gets previous purchases
 Future<void> _getPastPurchases() async {
   QueryPurchaseDetailsResponse response =
   await _iap.queryPastPurchases();
   for (PurchaseDetails purchase in response.pastPurchases) {
     if (Platform.isIOS) {
       InAppPurchaseConnection.instance.completePurchase(purchase);
     }
   }
   setState(() {
     advancedPurchases = response.pastPurchases.cast<ProductDetails>();
   });
 }
 void _buyProduct(ProductDetails prod) {
   final PurchaseParam purchaseParam = PurchaseParam(productDetails: prod);
   _iap.buyNonConsumable(purchaseParam: purchaseParam);
 }

标签: fluttergoogle-playapp-storepayment-processing

解决方案


推荐阅读