Я пытаюсь реализовать возобновляемую подписку во флаттере с помощью плагина flutter_in_app_purchases. Когда я нажимаю на экран, на котором это объявлено, он проходит через функцию initState (), а затем переходит к initPlatformState () и проходит это успешно, но когда доходит до функции getProducts (), он возвращает пустой элемент. список для элементов списка = FlutterInappPurchase.instance.getSubscriptions ([productID]); вызов. Я добавил ежемесячную подписку в App Store Connect и в Google Play Store и заполнил налоговые формы. Любая помощь будет оценена.
List<IAPItem> _items = [];
static const String productID = 'monthly_subscription';
@override
void initState() {
super.initState();
print("IN INIT STATE");
initPlatformState();
}
Future<void> initPlatformState() async {
print("In init platform state");
// prepare
final bool available = await InAppPurchaseConnection.instance.isAvailable();
print(available);
var close = await FlutterInappPurchase.instance.endConnection;
var result = await FlutterInappPurchase.instance.initConnection;
print('result: $result');
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) {
print('In not mounded');
return;
}
// refresh items for android
/*try {
String msg = await FlutterInappPurchase.instance.consumeAllItems;
print('consumeAllItems: $msg');
} catch(e){
print(e.toString());
}*/
await _getProduct();
}
Future<Null> _getProduct() async {
print("In get products");
try {
List<IAPItem> items = await FlutterInappPurchase.instance.getSubscriptions([productID]);
print("Items is: $items");
for (var item in items) {
print('${item.toString()}');
this._items.add(item);
}
setState(() {
this._items = items;
});
} catch(e) {
print(e.toString());
}
}