From e25dbf7f0b64a2d3eb1e8d393c3de73a678feefe Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:28:06 +0200
Subject: [PATCH 01/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index 64cbae7f..b363fe64 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -157,7 +157,7 @@ public void onProductDataResponse(ProductDataResponse response) {
try {
number = format.parse(product.getPrice());
} catch (ParseException e) {
- result.error(TAG, "Price Parsing error", e.getMessage());
+ result.error(TAG, "Price Parsing errorsee", e.getMessage());
return;
}
JSONObject item = new JSONObject();
From 06274c62e7982edd5e6c2dd3a076283f63d9ff09 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:37:18 +0200
Subject: [PATCH 02/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index b363fe64..a09afd22 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -157,7 +157,7 @@ public void onProductDataResponse(ProductDataResponse response) {
try {
number = format.parse(product.getPrice());
} catch (ParseException e) {
- result.error(TAG, "Price Parsing errorsee", e.getMessage());
+ result.error(TAG, "Price Parsing errorseett", e.getMessage());
return;
}
JSONObject item = new JSONObject();
From 344472abd1354f60d495b3af698136a67335deca Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:41:19 +0200
Subject: [PATCH 03/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index a09afd22..6533c53f 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -157,7 +157,7 @@ public void onProductDataResponse(ProductDataResponse response) {
try {
number = format.parse(product.getPrice());
} catch (ParseException e) {
- result.error(TAG, "Price Parsing errorseett", e.getMessage());
+ result.error(TAG, "Price Parsing erroreee", e.getMessage());
return;
}
JSONObject item = new JSONObject();
From 82636fdd469c9a2c5224e2e60277ad6023d7c486 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:44:06 +0200
Subject: [PATCH 04/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index 6533c53f..b0ae1a06 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -155,6 +155,9 @@ public void onProductDataResponse(ProductDataResponse response) {
Number number;
try {
+ Log.d(TAG, "onProduct: " + product);
+ Log.d(TAG, "onFormat: " + format);
+ Log.d(TAG, "onPrice: " + product.getPrice());
number = format.parse(product.getPrice());
} catch (ParseException e) {
result.error(TAG, "Price Parsing erroreee", e.getMessage());
From e6c61b5b701ee1a11a407f2800f69d1e6cb17826 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:51:28 +0200
Subject: [PATCH 05/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index b0ae1a06..2d8109c9 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -154,10 +154,13 @@ public void onProductDataResponse(ProductDataResponse response) {
NumberFormat format = NumberFormat.getCurrencyInstance();
Number number;
+ String test;
try {
Log.d(TAG, "onProduct: " + product);
Log.d(TAG, "onFormat: " + format);
Log.d(TAG, "onPrice: " + product.getPrice());
+ test = product.getPrice();
+ Log.d(TAG, "onTest: " +test);
number = format.parse(product.getPrice());
} catch (ParseException e) {
result.error(TAG, "Price Parsing erroreee", e.getMessage());
From 9c8ccfba81129cc805f23ef1f985157519412a9d Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:55:47 +0200
Subject: [PATCH 06/15] Update AmazonInappPurchasePlugin.java
---
.../AmazonInappPurchasePlugin.java | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index 2d8109c9..c9e5e253 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -153,22 +153,16 @@ public void onProductDataResponse(ProductDataResponse response) {
Product product=skuDetails.getValue();
NumberFormat format = NumberFormat.getCurrencyInstance();
- Number number;
- String test;
+ String price;
try {
- Log.d(TAG, "onProduct: " + product);
- Log.d(TAG, "onFormat: " + format);
- Log.d(TAG, "onPrice: " + product.getPrice());
- test = product.getPrice();
- Log.d(TAG, "onTest: " +test);
- number = format.parse(product.getPrice());
+ price = product.getPrice();
} catch (ParseException e) {
- result.error(TAG, "Price Parsing erroreee", e.getMessage());
+ result.error(TAG, "Price Parsing error", e.getMessage());
return;
}
JSONObject item = new JSONObject();
item.put("productId", product.getSku());
- item.put("price", number.toString());
+ item.put("price", price);
item.put("currency", null);
ProductType productType = product.getProductType();
switch (productType) {
From c480fde620cf7e89581e607b2913291667cc13d5 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Thu, 14 Oct 2021 15:57:19 +0200
Subject: [PATCH 07/15] Update AmazonInappPurchasePlugin.java
---
.../flutterinapppurchase/AmazonInappPurchasePlugin.java | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
index c9e5e253..53a31ae3 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AmazonInappPurchasePlugin.java
@@ -153,16 +153,9 @@ public void onProductDataResponse(ProductDataResponse response) {
Product product=skuDetails.getValue();
NumberFormat format = NumberFormat.getCurrencyInstance();
- String price;
- try {
- price = product.getPrice();
- } catch (ParseException e) {
- result.error(TAG, "Price Parsing error", e.getMessage());
- return;
- }
JSONObject item = new JSONObject();
item.put("productId", product.getSku());
- item.put("price", price);
+ item.put("price", product.getPrice());
item.put("currency", null);
ProductType productType = product.getProductType();
switch (productType) {
From bba0f76eb35d74202507bb675d7553fd831d16b0 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Fri, 15 Oct 2021 15:02:44 +0200
Subject: [PATCH 08/15] Update KINDLE.md
---
KINDLE.md | 38 +++++++++++++++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/KINDLE.md b/KINDLE.md
index 747d7cfc..39c6fbb0 100644
--- a/KINDLE.md
+++ b/KINDLE.md
@@ -1,4 +1,4 @@
-# Amazon Kindle Fire In-App Purchases Guide
+# Amazon Kindle Fire / FIre TV In-App Purchases Guide
The plugin will automatically detect Amazon Kindle devices during runtime.
@@ -20,10 +20,46 @@ Put this file into the kindle sdcard with :
You can verify if the file is valid in the AAT and view the purchases.
+Add following lines to your AndroidManifest:
+
+
+
+
+
+
+
+
+
+Like in the example https://github.com/dooboolab/flutter_inapp_purchase/blob/master/example/android/app/src/main/AndroidManifest.xml.
+
Now, when you make a purchase the AAT will intercept, show the purchases screen and allow you to make a purchase. Your app will think a real purchase has been made and you can test the full purchase flow.
## Testing Live Purchases
Add your apk into the "Live App Testing" tab. Add your IAP into the "In-App Items" tab. You must fill in your bank details first and submit your IAP so that the status is "live".
+
+Also with Gradle 3.4.0 or higher you need to take care of the obfuscating. To do so, create a Proguard file named "proguard-rules.pro" in the android/app folder. Into that file put the following content:
+
+## Flutter wrapper
+-dontwarn com.amazon.**
+-keep class com.amazon.** {*;}
+-keepattributes *Annotation*
+
+Then edit your build.gradle in app level like:
+
+buildTypes {
+
+ release {
+ shrinkResources false
+ signingConfig signingConfigs.release
+ minifyEnabled false
+ useProguard true
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+
+If you need more help, check out https://stackoverflow.com/questions/62833628/how-to-disable-code-obfuscation-in-flutter-release-apk and the amazon part https://developer.amazon.com/de/docs/in-app-purchasing/iap-obfuscate-the-code.html.
+
Now your testers will be sent a link to the test version of your app. They can make purchases at no cost to test your app.
## Submitting to the Amazon store
From cffa6e79e6b453153614e98ac571fe9d584f7883 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Fri, 15 Oct 2021 15:02:54 +0200
Subject: [PATCH 09/15] Update KINDLE.md
---
KINDLE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/KINDLE.md b/KINDLE.md
index 39c6fbb0..8f470b62 100644
--- a/KINDLE.md
+++ b/KINDLE.md
@@ -1,4 +1,4 @@
-# Amazon Kindle Fire / FIre TV In-App Purchases Guide
+# Amazon Kindle Fire / Fire TV In-App Purchases Guide
The plugin will automatically detect Amazon Kindle devices during runtime.
From 560de00d33af9f46008521ac8bd29bcd2c5b493b Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Fri, 15 Oct 2021 15:03:16 +0200
Subject: [PATCH 10/15] Update KINDLE.md
---
KINDLE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/KINDLE.md b/KINDLE.md
index 8f470b62..5c1d5b48 100644
--- a/KINDLE.md
+++ b/KINDLE.md
@@ -1,6 +1,6 @@
# Amazon Kindle Fire / Fire TV In-App Purchases Guide
-The plugin will automatically detect Amazon Kindle devices during runtime.
+The plugin will automatically detect Amazon devices during runtime.
## Testing In-App Purchases
From f5678cbdc3231335e65f7e38abaf71f10af364a5 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Fri, 15 Oct 2021 15:11:07 +0200
Subject: [PATCH 11/15] Update KINDLE.md
---
KINDLE.md | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)
diff --git a/KINDLE.md b/KINDLE.md
index 5c1d5b48..19c15e58 100644
--- a/KINDLE.md
+++ b/KINDLE.md
@@ -20,18 +20,7 @@ Put this file into the kindle sdcard with :
You can verify if the file is valid in the AAT and view the purchases.
-Add following lines to your AndroidManifest:
-
-
-
-
-
-
-
-
-
-Like in the example https://github.com/dooboolab/flutter_inapp_purchase/blob/master/example/android/app/src/main/AndroidManifest.xml.
+Add android.permission.INTERNET and com.amazon.device.iap.ResponseReceiver to your AndroidManifest like in the example https://github.com/dooboolab/flutter_inapp_purchase/blob/master/example/android/app/src/main/AndroidManifest.xml.
Now, when you make a purchase the AAT will intercept, show the purchases screen and allow you to make a purchase. Your app will think a real purchase has been made and you can test the full purchase flow.
@@ -40,15 +29,15 @@ Add your apk into the "Live App Testing" tab. Add your IAP into the "In-App Item
Also with Gradle 3.4.0 or higher you need to take care of the obfuscating. To do so, create a Proguard file named "proguard-rules.pro" in the android/app folder. Into that file put the following content:
-## Flutter wrapper
--dontwarn com.amazon.**
--keep class com.amazon.** {*;}
--keepattributes *Annotation*
+-dontwarn com.amazon.**
+-keep class com.amazon.** {*;}
+-keepattributes *Annotation*
Then edit your build.gradle in app level like:
-buildTypes {
-
+build.gradle:
+
+ buildTypes {
release {
shrinkResources false
signingConfig signingConfigs.release
@@ -57,6 +46,7 @@ buildTypes {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+
If you need more help, check out https://stackoverflow.com/questions/62833628/how-to-disable-code-obfuscation-in-flutter-release-apk and the amazon part https://developer.amazon.com/de/docs/in-app-purchasing/iap-obfuscate-the-code.html.
From c531558c37b45da80c0646c05c9779f6f8e4a55a Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Mon, 18 Oct 2021 14:23:06 +0200
Subject: [PATCH 12/15] Update flutter_inapp_purchase.dart
---
lib/flutter_inapp_purchase.dart | 2 --
1 file changed, 2 deletions(-)
diff --git a/lib/flutter_inapp_purchase.dart b/lib/flutter_inapp_purchase.dart
index 0c546d62..0d1de8dc 100644
--- a/lib/flutter_inapp_purchase.dart
+++ b/lib/flutter_inapp_purchase.dart
@@ -91,8 +91,6 @@ class FlutterInappPurchase {
final String? result = await _channel.invokeMethod('canMakePayments');
return result;
}
- throw PlatformException(
- code: _platform.operatingSystem, message: "platform not supported");
}
/// Retrieves a list of products from the store on `Android` and `iOS`.
From 4ad9c9fd2564b220f75be2f634f5c328676259a6 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Mon, 18 Oct 2021 14:27:21 +0200
Subject: [PATCH 13/15] Update flutter_inapp_purchase.dart
---
lib/flutter_inapp_purchase.dart | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/flutter_inapp_purchase.dart b/lib/flutter_inapp_purchase.dart
index 0d1de8dc..0c546d62 100644
--- a/lib/flutter_inapp_purchase.dart
+++ b/lib/flutter_inapp_purchase.dart
@@ -91,6 +91,8 @@ class FlutterInappPurchase {
final String? result = await _channel.invokeMethod('canMakePayments');
return result;
}
+ throw PlatformException(
+ code: _platform.operatingSystem, message: "platform not supported");
}
/// Retrieves a list of products from the store on `Android` and `iOS`.
From 94484e5bff909b793484fbb51df96021b8dfa906 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Mon, 18 Oct 2021 14:31:03 +0200
Subject: [PATCH 14/15] Update AndroidInappPurchasePlugin.java
---
.../flutterinapppurchase/AndroidInappPurchasePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
index cbf747ba..d40fd72f 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
@@ -148,7 +148,7 @@ public void onBillingSetupFinished(BillingResult billingResult) {
channel.invokeMethod("connection-updated", item.toString());
if (alreadyFinished) return;
alreadyFinished = true;
- result.error(call.method, "responseCode: " + responseCode, "");
+ result.error(call.method, "responseCode222: " + responseCode, "");
}
} catch (JSONException je) {
je.printStackTrace();
From 6f1828e037da1f5e001efb89b69aa32f2c905db6 Mon Sep 17 00:00:00 2001
From: M-Brock <81085003+M-Brock@users.noreply.github.com>
Date: Mon, 18 Oct 2021 14:34:57 +0200
Subject: [PATCH 15/15] Update AndroidInappPurchasePlugin.java
---
.../flutterinapppurchase/AndroidInappPurchasePlugin.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java b/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
index d40fd72f..cbf747ba 100644
--- a/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
+++ b/android/src/main/java/com/dooboolab/flutterinapppurchase/AndroidInappPurchasePlugin.java
@@ -148,7 +148,7 @@ public void onBillingSetupFinished(BillingResult billingResult) {
channel.invokeMethod("connection-updated", item.toString());
if (alreadyFinished) return;
alreadyFinished = true;
- result.error(call.method, "responseCode222: " + responseCode, "");
+ result.error(call.method, "responseCode: " + responseCode, "");
}
} catch (JSONException je) {
je.printStackTrace();