From 7c6a5b5d26bc59dd3d5ae6bdc15e4b2cbd66440e Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Tue, 14 Jul 2020 22:20:48 +0200 Subject: [PATCH] ios IAP: Select the latest purchase We really should be using server side validation. This is incredibly hacky. --- lib/iap.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/iap.dart b/lib/iap.dart index c853966e..e74883f2 100644 --- a/lib/iap.dart +++ b/lib/iap.dart @@ -50,7 +50,14 @@ class InAppPurchases { for (var purchase in response.pastPurchases) { var dt = DateTime.fromMillisecondsSinceEpoch( int.parse(purchase.transactionDate)); - return SubscriptionStatus(true, dt.add(const Duration(days: 31))); + Log.i("ios Purchase dt: $dt"); + Log.i(purchase.verificationData.serverVerificationData); + + dt = dt.add(const Duration(days: 31)); + if (!dt.isAfter(DateTime.now())) { + continue; + } + return SubscriptionStatus(true, dt); } } else if (Platform.isAndroid) { var response = await iapConn.queryPastPurchases();