Код: Выделить всё
final PurchaseDetails oldPurchaseDetails = purchasesOnline.firstWhere(
(element) =>
element.status == PurchaseStatus.purchased ||
element.status == PurchaseStatus.restored,
);
//recordAnalyticsChangeSub(oldPurchaseDetails, product);
if (oldPurchaseDetails is GooglePlayPurchaseDetails) {
// For android we need to manually upgade/downgrade subscription
PurchaseParam purchaseParam = GooglePlayPurchaseParam(
productDetails: product,
changeSubscriptionParam: ChangeSubscriptionParam(
oldPurchaseDetails: oldPurchaseDetails,
replacementMode: ReplacementMode.chargeProratedPrice, //only chargeFullPrice works
),
);
await InAppPurchase.instance
.buyNonConsumable(purchaseParam: purchaseParam);
changingPlan = false;
Подробнее здесь: https://stackoverflow.com/questions/796 ... ot-working