flutter [Android:应用内订阅] 获取所有计划并购买它们,

bvhaajcl  于 5个月前  发布在  Flutter
关注(0)|答案(5)|浏览(51)

重现步骤

当我在应用中实现内购订阅时,遇到了以下问题:
订阅1

基础套餐1
基础套餐2
我尝试提取这些基础套餐的详细信息并购买它们。Googles New subscription model包是否支持这个功能?我没有找到关于如何实现的任何文档。我已经检查了in_app_purchase,但没有找到确切的答案。

预期结果

希望从订阅中获取基础套餐的详细信息,并将其作为ProductDetails对象返回。

实际结果

得到的是SubscriptionOfferDetailsWrapper,而不是期望的ProductDetails

代码示例

我尝试实现类似以下的功能:
代码示例

ProductDetailsResponse response = await _iap?.queryProductDetails({"<subscription_id>"});
     ProductDetails productDetails = response.productDetails.first;
        if (productDetails is GooglePlayProductDetails) {
              List<SubscriptionOfferDetailsWrapper>? offerWrapperList = productDetails.productDetails.subscriptionOfferDetails;
        }
     
     // How to get ProductDetails object from above subscription base plan?   
     ProductDetails productDetails =  ?   
        
     final PurchaseParam purchaseParam = PurchaseParam(productDetails: productDetails);
    _iap?.buyNonConsumable(purchaseParam: purchaseParam);

截图或视频

截图/视频演示
[在这里上传媒体]

日志

日志

[Paste your logs here]

Flutter Doctor输出

Doctor输出

Flutter 3.19.6 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 54e66469a9 (9 weeks ago) • 2024-04-17 13:08:03 -0700
Engine • revision c4cd48e186
Tools • Dart 3.3.4 • DevTools 2.31.1
mzaanser

mzaanser1#

请检查https://stackoverflow.com/a/78514249,看看它是否对你的情况有所帮助。

nxowjjhe

nxowjjhe2#

感谢回复,是的,了解图书馆已迁移到BillingLibrary V5,现在queryProductDetails(-)将返回基本计划及其订阅优惠。我也尝试检索作为SubscriptionOfferDetailsWrapper列表,但仍然不知道如何识别基本计划并购买它们?

zu0ti5jz

zu0ti5jz3#

请检查#127844以查看它是否对您的情况有所帮助。

xggvc2p6

xggvc2p64#

@darshankawar 这没有帮助,仍然找不到我正在寻找的内容。
基本上,我只是想根据新的订阅模型迁移这两个步骤:

1. 加载销售产品参考

const Set<String> _kIds = <String>{'product1', 'product2'};
final ProductDetailsResponse response =
    await InAppPurchase.instance.queryProductDetails(_kIds);
if (response.notFoundIDs.isNotEmpty) {
  // Handle the error.
}
List<ProductDetails> products = response.productDetails;

2. 进行购买参考

final ProductDetails productDetails = ... // Saved earlier from queryProductDetails().
final PurchaseParam purchaseParam = PurchaseParam(productDetails: productDetails);
if (_isConsumable(productDetails)) {
  InAppPurchase.instance.buyConsumable(purchaseParam: purchaseParam);
} else {
  InAppPurchase.instance.buyNonConsumable(purchaseParam: purchaseParam);
}
wrrgggsh

wrrgggsh5#

感谢您的更新。请保持问题开放,以便团队跟踪。

相关问题