2013-08-09 3 views
5

Mamy aplikację na Androida obsługującą funkcję rozliczeń za aplikację w usłudze V3. W naszych testach wszystko inne działało dobrze, ale okazało się, że nieaktywne produkty można również uzyskać, przesyłając zapytanie do inwentarza.Jak ukryć nieaktywne produkty w rozliczeniach za aplikacje?

W ten sposób nasze zapytanie w Google Play aplikacji produktów zapasy:

ArrayList<String> moreSkus = new ArrayList<String>(); 
moreSkus.add("gas"); 
moreSkus.add("premium"); 
mHelper.queryInventoryAsync(true, moreSkus, mGotInventoryListener); 

... 

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, final Inventory inventory) { 
     if(inventory.hasDetails("premium")) { 
      System.out.println("Inactive product is also visible to app!"); 
     } 
    } 
}; 

Między tymi dwoma produktami, „Premium” jest nieaktywna, ale instrukcja print w IabHelper.QueryInventoryFinishedListener został jeszcze wykonany!

Czy istnieje sposób na uzyskanie tylko aktywnych produktów?

+0

jeśli wiesz, że składka jest nieaktywna, dlaczego pytasz o nią? – Michael

Odpowiedz

0

AFAIK, można usunąć SKU z listy zapytań

//moreSkus.add("premium"); //don't query this item 

To zależy od kodu, ale trochę sens, ponieważ nie można zbadać wszystkie dostępne produkty z pustym „moreSku” liście, trzeba wybierz to, czego naprawdę chcesz; to zależy od twojego kodu. Mam nadzieję, że to może pomóc.

Powiązane problemy