¿Cómo determinar si el usuario cancela la suscripción de Google Play?

Estamos a punto de crear un producto de suscripción en nuestra aplicación de Android, pero un poco confuso sobre la mejor manera de saber sobre las suscripciones canceladas. La única manera que estamos planeando dejar que el usuario cancele es que vayan a Google Play Store y cancelen explícitamente, pero en este caso, nuestro backend no será notificado.

La API para desarrolladores de Google Play dice explícitamente que no debe consultar el API para el estado de todas las suscripciones, así que ¿cómo se supone que sabemos qué usuarios han cancelado su suscripción?

Cualquier ayuda muy apreciada!

De acuerdo con la documentación de la suscripción en la aplicación, no hay ningún mecanismo para detectar cuándo el usuario cancela la suscripción. Ya que no se cancela inmediatamente. En su lugar, espera que finalice el ciclo para que la suscripción caduque.

Extracto del documento ( fuente )

Cuando el usuario cancela una suscripción, Google Play no ofrece un reembolso por el ciclo de facturación actual. En su lugar, permite al usuario tener acceso a la suscripción cancelada hasta el final del ciclo de facturación actual, momento en el que termina la suscripción. Por ejemplo, si un usuario compra una suscripción mensual y la cancela el día 15 del ciclo, Google Play considerará que la suscripción es válida hasta el final del día 30 (u otro día, dependiendo del mes)

La aplicación no recibirá ningún tipo de notificación cuando el usuario cancele la suscripción.

El comportamiento de la suscripción es cuando se consulta el inventario en el SKU de la aplicación se devolverá si la suscripción es válida. Cuando caduca la suscripción, el SKU no se devolverá cuando consulte el inventario.

Según la documentación en este enlace

Está bien ejecutar una consulta por lotes cada vez que la suscripción se acerca al final

Extracto del documento ( fuente ):

Consulta del estado de la suscripción sólo al vencimiento – Una vez que su servidor haya recuperado la fecha de vencimiento de los tokens de suscripción, no debería consultar los servidores de Google Play para obtener el estado de suscripción hasta que la suscripción alcance o haya pasado la fecha de caducidad. Normalmente, los servidores ejecutarían una consulta por lotes cada día para comprobar el estado de las suscripciones vencidas y, a continuación, actualizar la base de datos

La siguiente API del servidor le permite consultar el estado de la suscripción:

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource-representations

Las variables autoRenewing y cancelReason le permitirán saber si la suscripción ha sido cancelada.

Mediante el uso de la API anterior sería capaz de implementar un sistema en el que la suscripción próxima a la expiración se puede consultar para el estado y, a continuación, determinar si se cancelan o no.

Los detalles completos para la cancelación de la suscripción se pueden encontrar en este enlace .

Nota:
La documentación indica que debe seguir proporcionando el contenido siempre y cuando el usuario tenga una suscripción válida. Si planea denegar el acceso al contenido si alguien lo cancela, la suscripción será contraria a la política de Google

Extracto del documento ( fuente )

Importante: En todos los casos, debe seguir ofreciendo el contenido que sus suscriptores han comprado a través de sus suscripciones, siempre y cuando cualquier usuario pueda acceder a él. Es decir, no debe quitar ningún contenido mientras cualquier usuario aún tiene una suscripción activa a él, incluso si dicha suscripción terminará al final del ciclo de facturación actual.

  • Cómo probar beta y alfa simultáneamente en Google Play
  • ¿Por qué Google Play Store no muestra la razón de la indisponibilidad del dispositivo para la aplicación?
  • ¿Cómo publicar una actualización de la aplicación en android-market sin borrar la base de datos local y los archivos locales?
  • ¿Es una buena idea licenciar mi aplicación en el Servicio de licencias de Android?
  • ¿Cómo encontrar el ID de la aplicación de Google Play?
  • IabResult: Servicio de facturación no disponible en el dispositivo. (respuesta: 3: Facturación no disponible)
  • Excepción de tiempo de ejecución de clase intermitente de Android no encontrada
  • Google reproduce no actualizar automáticamente mi aplicación para la nueva versión
  • Estado dice Borrador en Prod
  • Min-sdk mayor que las versiones anteriores android
  • Problema de permiso Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.