flutter - 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);
}
解决方案
推荐阅读
- python - PySpark - 拉取包含特定列最大值的行和所有列
- java - sudoers 在 ansible 中关闭 tomcat
- java - 卡夫卡连接错误:java.lang.NoClassDefFoundError:org/apache/http/conn/HttpClientConnectionManager
- python - 当我返回字符串时,无论是否提到 int 作为返回类型,我仍然没有收到错误!这是为什么?
- c# - C#如何将double数组转换为float数组或int数组?
- github - Github-pull 请求冲突
- ruby - 过滤器链停止为 :authenticate_user!呈现或重定向 app_1 已完成 401 Unauthorized
- azure - Elasticsearch xpack RSA_verify_PKCS1_PSS_mgf1:第一个八位字节无效
- python - 小批量反向传播澄清
- python-3.x - Python 模块因信任而出错