"Sie haben das Produkt bereits gekauft" und trotzdem getPurchases-Listen leern

  • Antworten:0
Stefan Walkner
  • Forum-Beiträge: 1

22.09.2014, 08:34:53 via Website

Guten Morgen!

Meine App hat Consumables als In-App-Käufe, jetzt wollte ich testen, wie sich die App verhält, wenn bspw. während des Kaufvorgangs die Internetverbindung abbricht. Die Zahlung wurde getätigt und Google sagt beim nächsten Kaufversuch, dass ich das Produkt bereits besitze. Allerdings liefert getPurchases nichts zurück:

Bundle ownedItems = mHelper.getmService().getPurchases(3, getPackageName(), "inapp", null);
int responseCode = ownedItems.getInt("RESPONSE_CODE");
if (responseCode == 0) {
    ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
    for (String purchaseData : purchaseDataList) {
        JSONObject o = new JSONObject(purchaseData);
        String purchaseToken = o.optString("token", o.optString("purchaseToken"));
        int responseCodeConsumation = mHelper.getmService().consumePurchase(3, VersandActivity.this.getPackageName(), purchaseToken);
        itemAlreadyPurchased = responseCodeConsumation == 0;
        showErrorDialog("" + responseCodeConsumation, purchaseToken + "***" + purchaseTokenFromMe);
    }
}

In einem solchen Fall hängt der Benutzer jetzt fest - ich habe keine Möglichkeit, herauszufinden, dass er das Produkt bereits gekauft hat und er kann es nicht wieder kaufen... Was übersehe ich hier?

Vielen Dank!

Antworten