Consumible de Android: "ya posee ese elemento", pero inventory.hasPurchase () es falso

Estoy atascado con Google In App v3 – He probado una compra sin consumo (por ejemplo, cuando falla la aplicación entre comprar y consumir) – ahora no encontrar una salida.

Si intento comprar otra vez, él dice que "usted posee ya ese artículo". Pero cuando pruebo la propiedad, dice que no la tengo:

Inventory inv = mHelper.queryInventory(false, null); inv.getPurchase(sku); // null inv.hasPurchase(sku); // false 

No puedo consumir algo tampoco, ya que no tengo una compra para consumir. ¿Cómo proceder aquí?

EDITAR Reproduce como lo siguiente: compra de consumibles en la aplicación, a continuación, desactive la conexión a Internet. Después de eso, no podrá volver a comprar el producto durante algunas horas. Sólo probado con una aplicación popular de la tienda de juegos (Diamond Digger Saga), tuve el mismo comportamiento. ¿No hay realmente la posibilidad de evitar / resolver esto?

Me encontré con este problema exacto. Tenía dos cuentas de Google en el teléfono, una que era la cuenta del revelador (con la cual utilicé tontamente mi cuenta personal para) y otra que era la cuenta de la prueba que registré en la consola del revelador. Yo había eliminado y agregado de nuevo la cuenta de desarrollador de mis cuentas en el teléfono, lo que me permitió hacer compras de prueba desde mi aplicación, pensando que si la cuenta de desarrollador era la segunda de esta lista usaría la primera para compras.

Por desgracia, después de un par de ejecuciones de la aplicación me encontré con su problema. Dejé de intentar tener ambos y quitar la cuenta de desarrollador de mi teléfono. Aunque increíblemente incómodo, esto se deshizo de este problema y me permitió probar la compra, consumir, consultar, etc

Si está haciendo todo correctamente y su código está bien, lo más probable es que el problema se encuentre en los datos de los servicios de Google Play en caché.

Por ejemplo, cuando realiza una compra de prueba en su dispositivo A: en su dispositivo B (con la misma cuenta de Google conectada), seguirá recibiendo el inventory sin su compra durante algún tiempo. Y tu inventory.getPurchase(sku) devolverá null y inventory.hasPurchase(sku) devolverá false ;

Para solucionar este problema, intenta abrir Google Play y cerrarlo con el botón de Aplicaciones recientes (haz clic en él y luego desliza la aplicación), esto terminará la aplicación más rápido de lo habitual. A continuación, apague el dispositivo durante un par de minutos.

Nuestro objetivo aquí es hacer que Google Play actualice su caché.

Asegúrese de que está en wifi porque puede actualizar rara vez si está en datos móviles. Eventualmente los datos serán actualizados y usted conseguirá su compra. En mi caso sucedió después de 5 minutos o smth.

  • Mostrando precios localizados en la aplicación de Android
  • ¿Cómo puedo pagar con otra cuenta del mismo dispositivo en IN APP APPURCHASE android
  • ¿Es posible tener múltiples apoyos de APK basados ​​en el país?
  • Esta es una orden de prueba, no se le cobrará
  • Implementación de la facturación en la aplicación
  • En la facturación de aplicaciones getPrice () Android
  • Reembolso de facturación de Android en la aplicación
  • Cómo convertir una aplicación de Android de un modelo de pago gratuito a un desbloqueo de pagos en la aplicación
  • IabResult: Error al actualizar el inventario (consultar elementos propios)
  • ¿Puedo obtener el ID de pedido de Google Checkout para una aplicación Android de la propia aplicación?
  • Eliminar "Gracias. Su artículo aparecerá en breve. "Tostada de aparecer después de la compra de InApp
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.