Я использую плагин Flutter InAPP Purchase (https://github.com/dooboolab/flutter_inapp_purchase).
Я пытаюсь настроить побочные платежи ios, но после разных попыток не могу понять, в чем проблема.
Если я звоню FlutterInappPurchase.getProducts(skus)
, я получаю все данные из Apple Store относительно моих продуктов и могу правильно их отображать.
Если я пытаюсь купить их, я звоню FlutterInappPurchase.checkForAppStoreInitiatedProducts()
для получения продуктов из Apple Store и после этого,если список не пустой, я пытаюсь вызвать buyProduct.
Но список всегда пуст.
Вот код, который я использую:
void checkForAppStoreInitiatedProducts(IAPItem item) async {
List<IAPItem> appStoreProducts = await FlutterInappPurchase.getAppStoreInitiatedProducts(); // Get list of products
debugPrint("getAppStoreInitiatedProducts "+appStoreProducts.toString());
if (appStoreProducts.length > 0) {
buyProduct(item);
}
}
Future buyProduct(IAPItem item) async {
if (_isIOS) {
try {
PurchasedItem purchasedItem =
await FlutterInappPurchase.buyProduct(item.productId);
debugPrint("(iOS) BuyProduct ${purchasedItem.toString()}");
} catch (e) {
debugPrint("(iOS) BuyProduct Error $e");
await FlutterInappPurchase.onAdditionalSuccessPurchaseIOS.listen((data) {
PurchasedItem purchasedItem = data;
debugPrint("(iOS) BuyProduct ${purchasedItem.purchaseToken.toString()}");
});
}
}else {
try {
PurchasedItem purchasedItem =
await FlutterInappPurchase.buyProduct(item.productId);
debugPrint("(Android) BuyProduct ${purchasedItem.purchaseToken.toString()}");
} catch (e) {
debugPrint("(Android) BuyProduct Error $e");
}
}
}
Я выполняю все эти шаги, предложенные в хранилище:
> Invalid productId in ios. Please try below and make sure you've done
> belows. Steps Completed an effective "Agreements, Tax, and Banking."
> Setup sandbox testing account in "Users and Roles." Signed into iOS
> device with sandbox account. Set up three In-App Purchases with the
> following status: i. Ready to Submit ii. Missing Metadata iii. Waiting
> for Review Enable "In-App Purchase" in Xcode "Capabilities" and in
> Apple Developer -> "App ID" setting. Delete app / Restart device /
> Quit "store" related processes in Activity Monitor / Xcode Development
> Provisioning Profile -> Clean -> Build.