我正在尝试向我的 IOS 应用程序添加订阅。我使用的代码适用于 Android,但不适用于 IOS 每当我使用
final ProductDetailsResponse response = await InAppPurchase.instance .queryProductDetails({'standard', 'family'});
当它不应该返回一个空数组时,它总是返回一个空数组。
我认为这与苹果拥有订阅组有关,但我不确定。为了更好地理解,以下是完整的功能:
Future<bool> makePurchaseIos(String productId) async {
late ProductDetails standardPlan;
late ProductDetails familyPlan;
final ProductDetailsResponse response = await InAppPurchase.instance
.queryProductDetails({'standard', 'family'});
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text("Got the following products: ${response.productDetails}"),
));
for (ProductDetails product in response.productDetails) {
if (product.id == 'standard') {
standardPlan = product;
} else if (product.id == 'family') {
familyPlan = product;
}
}
///
ProductDetails selectedProduct;
if (productId == "standard") {
selectedProduct = standardPlan;
} else {
selectedProduct = familyPlan;
}
final PurchaseParam purchaseParam =
PurchaseParam(productDetails: selectedProduct);
await InAppPurchase.instance.buyConsumable(purchaseParam: purchaseParam);
print(selectedProduct);
return true;
}
每当我尝试按下订阅时,它都会返回空数组,这意味着
queryProductDetails()
函数的响应什么也没有。我不知道为什么会发生这种情况,因为我肯定给了它正确的订阅 ID
在客户的计算机上,他们告诉我他们已经设置了银行业务、税务并同意条款和条件。事实证明他们没有这样做,所以这就是问题所在,但是苹果并没有给你一条实际的错误消息来通知你这一点。如果您遇到同样的错误,请仔细检查我提到的步骤是否已完成。