diff --git a/extension-iap/lib/android/in-app-purchasing-2.0.76.jar b/extension-iap/lib/android/in-app-purchasing-2.0.76.jar new file mode 100644 index 0000000..cd590eb Binary files /dev/null and b/extension-iap/lib/android/in-app-purchasing-2.0.76.jar differ diff --git a/extension-iap/manifests/android/AndroidManifest.xml b/extension-iap/manifests/android/AndroidManifest.xml index c5bb20d..221cc72 100644 --- a/extension-iap/manifests/android/AndroidManifest.xml +++ b/extension-iap/manifests/android/AndroidManifest.xml @@ -4,9 +4,9 @@ - + - + diff --git a/extension-iap/src/java/com/defold/iap/IapAmazon.java b/extension-iap/src/java/com/defold/iap/IapAmazon.java index d6bc944..3b1da11 100644 --- a/extension-iap/src/java/com/defold/iap/IapAmazon.java +++ b/extension-iap/src/java/com/defold/iap/IapAmazon.java @@ -11,6 +11,7 @@ import java.util.concurrent.BlockingQueue; import org.json.JSONException; import org.json.JSONObject; +import org.json.JSONArray; import android.app.Activity; import android.os.Bundle; @@ -173,9 +174,13 @@ public class IapAmazon implements PurchasingListener { if (productDataResponse.getRequestStatus() != ProductDataResponse.RequestStatus.SUCCESSFUL) { listener.onProductsResult(IapJNI.BILLING_RESPONSE_RESULT_ERROR, null, commadPtr); } else { + for (final String s : productDataResponse.getUnavailableSkus()) { + Log.v(TAG, "Unavailable SKU: " + s); + } + Map products = productDataResponse.getProductData(); try { - JSONObject data = new JSONObject(); + JSONArray data = new JSONArray(); for (Map.Entry entry : products.entrySet()) { String key = entry.getKey(); Product product = entry.getValue(); @@ -189,7 +194,7 @@ public class IapAmazon implements PurchasingListener { // Based on return values from getPrice: https://developer.amazon.com/public/binaries/content/assets/javadoc/in-app-purchasing-api/com/amazon/inapp/purchasing/item.html item.put("price", priceString.replaceAll("[^0-9.,]", "")); } - data.put(key, item); + data.put(item); } listener.onProductsResult(IapJNI.BILLING_RESPONSE_RESULT_OK, data.toString(), commadPtr); } catch (JSONException e) {