es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Android – BillingClient devuelve una lista de compras vacía.

Algunos de mis usuarios me dicen que mi aplicación olvida las suscripciones compradas de vez en cuando. Funciona durante 3-4 días y luego las olvida. Este es un problema muy importante, ya que los usuarios podrían sospechar fraude. Estoy usando la biblioteca de facturación 4.0.0 y he implementado la lógica de facturación según las pautas de Google.

Según lo que he averiguado, esto ocurre cuando, por alguna razón, se interrumpe la conexión con el servicio de facturación. (Por ejemplo, la Play Store se está actualizando)

He logrado replicar este escenario de la siguiente manera:

  • Desactivar la conexión a Internet
  • Borrar los datos de la aplicación Play Store
  • Lanzamiento inicial de mi aplicación.
  • Llamar a billingClient.startConnection()
    onBillingSetupFinished se llama con el código de respuesta BILLING_UNAVAILABLE
    el usuario ve -> La aplicación dice “no se ha comprado ninguna suscripción”

  • Activar la conexión a Internet

  • Volver a inicializar BillingClient.
    onBillingSetupFinished se llama con el código de respuesta OK. billingClient.isReady() devuelve true.
  • Llamar a billingClient.queryPurchasesAsync() y billingClient.querySkuDetailsAsync().
    se llama a onSkuDetailsResponse con la lista de skuDetailsList llena de todos los datos correctos. Sin embargo:
    se llama a onQueryPurchasesResponse con una lista de compras vacía -> nuevamente el usuario ve “no se han comprado suscripciones”

Importante: En este punto, si abro la Play Store, muestra las suscripciones compradas. Pero la aplicación sigue obteniendo una lista de compras vacía.

Si sigo llamando a billingClient.startConnection() o billingClient.queryPurchasesAsync() en algún momento, después de unos 10 minutos, uno de los intentos tendrá éxito y devolverá una lista de compras no vacía.

¿Es posible decirle a la Play Store que actualice los datos de suscripción para mi aplicación? ¿Cómo se puede manejar este escenario de manera elegante?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el escenario y los detalles proporcionados, parece que el problema está relacionado con interrupciones en la conexión del servicio de facturación. Cuando se interrumpe la conexión, la aplicación no puede acceder a las suscripciones adquiridas y el usuario ve un mensaje indicando que no se han comprado suscripciones, lo cual puede causar preocupación y sospechas.

    Para manejar esta situación de manera adecuada, se pueden tomar algunos pasos:

    1. Implementar un mecanismo de reintento: Cuando la aplicación detecte que la conexión con el servicio de facturación se interrumpe, puede implementar un mecanismo de reintento para intentar conectar periódicamente hasta que se establezca una conexión exitosa. Esto puede evitar el problema de listas de compras vacías y asegurar que el usuario siempre tenga acceso a sus suscripciones.
    2. Verificar la conexión a internet: En el escenario mencionado, se mencionó que la conexión a internet estaba desactivada antes de iniciar la aplicación, lo cual puede causar problemas con la conexión del servicio de facturación. Para evitar esto, la aplicación puede verificar la conexión a internet antes de intentar conectarse al servicio de facturación.

    3. Verificar las actualizaciones de Play Store: Las actualizaciones de Play Store también pueden causar interrupciones en la conexión del servicio de facturación. Para manejar esto, la aplicación puede verificar las actualizaciones de Play Store antes de intentar conectarse al servicio de facturación y notificar al usuario si se requiere una actualización.

    4. Pedir a los usuarios que validen el estado de su suscripción: En algunos casos, puede ser útil pedir a los usuarios que validen manualmente el estado de su suscripción. Esto se puede hacer proporcionando una opción en la aplicación que permita a los usuarios actualizar sus datos de suscripción conectándose al servicio de facturación y consultando sus compras nuevamente.

    En general, para manejar el problema de las suscripciones olvidadas de manera adecuada, la aplicación debe implementar mecanismos para detectar y manejar interrupciones en la conexión del servicio de facturación, notificar a los usuarios sobre cualquier actualización o cambio que pueda afectar sus suscripciones y proporcionar opciones para que los usuarios validen manualmente el estado de su suscripción.

Comments are closed.