Consumir compras antiguas Android IAB V3

Tengo un problema al probar mi aplicación. Tengo 2 artículos que el usuario puede comprar. Hace unos días no sabía que debía consumir las compras. Hoy recibo el código 7 (artículo ya poseído) cada vez que intento comprar uno de los artículos porque no lo consumí. ¿Qué puedo hacer para consumir la compra antigua?

AÑADIDO: Ambos elementos no se gestionan en la consola del desarrollador

Traté de consumir con un símbolo equivocado. Este código me ayudó.

Bundle ownedItems = mService.getPurchases(3, context.getPackageName(), "inapp", null); int response = ownedItems.getInt("RESPONSE_CODE"); if (response == 0) { ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST"); ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); //ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE"); //String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN"); for (int i = 0; i < purchaseDataList.size(); ++i) { try { String purchaseData = purchaseDataList.get(i); JSONObject jo = new JSONObject(purchaseData); final String token = jo.getString("purchaseToken"); String sku = null; if (ownedSkus != null) sku = ownedSkus.get(i); consume(sku, token, purchaseData); } catch (JSONException e) { e.printStackTrace(); } } } 

Para consumir inapp producto que necesita obtener la compra de ese sku. Para eso primero necesita o consigue INVENTARIO de todos los productos o hace COMPRA ese producto exacto.

Por favor, compruebe el código a continuación que le puede ayudar a consumir productos que fueron pruchased antes.

 public void consume(final String skuName) { mHelper.queryInventoryAsync(true, new IabHelper.QueryInventoryFinishedListener() { @Override public void onQueryInventoryFinished(IabResult result, Inventory inventory) { if (inventory.getSkuDetails(skuName) != null){ mHelper.consumeAsync(inventory.getPurchase(skuName), null); } } }); } 

Gracias a las respuestas anteriores, tengo esta solt. Para cancelar todas las compras

 import com.android.vending.billing.util.Inventory; import com.android.vending.billing.util.Purchase; public class BasePurchaseActivity { protected IabHelper billingHelper; ... /** * Means it will clear our the purchase history */ protected void consumeAllPurchases() { // You know your product ids Set<String> allProductIds = com.demo.myapp.AppMgr.getAllAppProductIds(); try { Inventory inventory = getInventory(); for (String curProdId : allProductIds) { Purchase purchase = inventory.getPurchase(curProdId); if (purchase != null) { billingHelper.consumeAsync(purchase, null); } } } catch (IabException iabEx) { iabEx.printStackTrace(); } } 
  • Android InApp Billing - ¿para qué son realmente nociosos?
  • Cupones para la facturación integrada en la aplicación
  • Retardo de propagación al cambiar el precio y la descripción del producto en la aplicación en la consola de Google Play para desarrolladores
  • Comprobación del lado del servidor de la compra de la versión 3 de facturación en aplicaciones de Google Play
  • API de Google Play para desarrolladores: "startTimeMillis" se actualiza cuando no debería
  • La facturación en la aplicación no funciona: "IAB Helper no está configurado"
  • Referencia actual de Android IAB
  • ¿Cómo proteger Google In-App Billing v3 contra la piratería de código?
  • Falla en la facturación de la aplicación en la nueva versión de mi aplicación
  • Cómo solucionar los defectos de la lógica de adquisición de la API de los consumibles en la API de facturación de Google Play v3 (relevante para todos los consumibles con API v3)
  • ¿Cómo puedo averiguar el país de google play del usuario?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.