我正在尝试使用 in_app_purchase 包在我的 Flutter 应用程序中实现订阅系统。我在文档中发现的只是我需要一个旧的购买来处理订阅:
final PurchaseDetails oldPurchaseDetails = ...;
PurchaseParam purchaseParam = PurchaseParam(
productDetails: productDetails,
changeSubscriptionParam: ChangeSubscriptionParam(
oldPurchaseDetails: oldPurchaseDetails,
prorationMode: ProrationMode.immediateWithTimeProration));
InAppPurchaseConnection.instance
.buyNonConsumable(purchaseParam: purchaseParam);
我已经有了 productDetails。 第一次怎么订阅?
答案 0 :(得分:0)
第一次订阅不需要旧订阅,参数changeSubscriptionParam
是可选的,你可以为它传递null。当您要更改订阅时,您需要在 changeSubscriptionParam
中的此参数中传递旧订阅
范围。这仅适用于 android,获取旧订阅的简单方法是(在我的情况下只有两个可能的签名):
Future<GooglePlayPurchaseDetails> _getOld() async {
if (Platform.isAndroid) {
final InAppPurchaseAndroidPlatformAddition androidAddition =
_inAppPurchase
.getPlatformAddition<InAppPurchaseAndroidPlatformAddition>();
QueryPurchaseDetailsResponse oldPurchaseDetailsQuery =
await androidAddition.queryPastPurchases();
oldPurchaseDetailsQuery.pastPurchases.forEach((element) {
oldPurchaseDetails = element;
});
}
return oldPurchaseDetails;
}