Cómo administrar suscripciones y compras únicas

Es posible que debas realizar acciones de administración de suscripciones o compras únicas como parte de tu trabajo diario. Por ejemplo, es posible que tu servicio de atención al cliente deba emitir reembolsos totales o parciales para los usuarios, o que debas revocar los derechos en ciertos casos. Puedes administrar los pedidos desde Play Console o, si quieres hacerlo desde tu propio sistema, puedes hacerlo mediante la API de Google Play Developer.

Cancelar suscripciones

Los usuarios pueden cancelar una suscripción a Google Play en cualquier momento desde Play Store. Sin embargo, también debes ofrecerles una opción para que cancelen sus suscripciones en tu app y en tu sitio web, si corresponde.

La forma más fácil de permitir que los usuarios cancelen de forma voluntaria es mediante un vínculo directo a Play Store, donde pueden ver y administrar su suscripción.

Es posible que también debas activar cancelaciones desde tu backend. El método purchases.subscriptions.cancel te permite cancelar la compra de una suscripción. Por ejemplo, puedes usar este método para desactivar un servicio heredado. Cuando se cancela una suscripción, no se emite un reembolso, y el usuario sigue teniendo acceso hasta el final de su período de facturación actual. La cancelación de una suscripción con este método evita que el usuario la restablezca en Play Store, pero los usuarios pueden volver a registrarse a través de la app si es necesario.

Esta acción activa una SUBSCRIPTION_CANCELED notificación para desarrolladores en tiempo real. Controla estas cancelaciones como se describe en Cancelaciones.

Cómo aplazar la facturación

Usa subscriptions.defer para extender el período de derechos de una suscripción. Durante el período de diferimiento, el usuario permanecerá suscrito a tu contenido, aunque no se le cobrará por el tiempo adicional. Cuando aplazas la facturación de una suscripción, la información de estado se actualiza según corresponda y la verás reflejada en el campo expiryTime de la información del estado de la compra:

  • En el caso de las suscripciones recurrentes activas, la facturación diferida extiende la siguiente fecha de renovación.
  • En el caso de los planes prepagados, la facturación diferida extiende el plazo de vencimiento.

Estos son algunos ejemplos de cómo puedes usar la facturación diferida:

  • Ofrece a los usuarios acceso sin costo como una oferta especial, por ejemplo, dales una semana gratis a los suscriptores existentes para que completen una encuesta de comentarios.
  • Ofrece a los clientes acceso sin costo como una acción de atención al cliente, por ejemplo, después de una interrupción prolongada que podría haber afectado su capacidad para usar tu servicio.

La facturación se puede aplazar un día o un año por llamada a la API. Para postergar aún más el final del derecho, vuelve a llamar a la API antes de que llegue la nueva fecha de vencimiento.

Esta acción activa una SUBSCRIPTION_DEFERRED notificación para desarrolladores en tiempo real. Consulta Aplaza la facturación de un suscriptor en Acerca de las suscripciones para obtener información sobre el control de estos eventos.

Ejemplo:

  1. El servicio de transmisión de FitnessGoals desea lanzar una promoción para fomentar el ejercicio regular en febrero.

  2. Deciden ofrecer un mes adicional de servicio a cualquier suscriptor que haga ejercicio con FitnessGoals al menos 10 veces durante el mes de febrero.

  3. Hace un seguimiento de los resultados del desafío y, el 1 de marzo, llama a la API de subscriptions.defer por cada compra de suscripción activa que pertenece a los usuarios que encontraron el desafío en febrero.

  4. Estos usuarios obtienen la ventaja de ofrecer un mes completo de videos de ejercicios frecuentes sin costo y los usuarios les cuentan a todos sus amigos cómo los ayuda FitnessGoals a mantenerse saludables.

Emitir reembolsos y revocaciones

Existen muchas situaciones en las que es posible que desees emitir un reembolso o revocar el acceso a una suscripción o compra única.

Reembolsar completamente un pedido por ID de pedido

Con la API de orders.refund, puedes emitir reembolsos totales de cualquier pedido en un plazo de tres años a partir de la compra. El método orders.refund recibe un parámetro de revocación que indica si se debe revocar el acceso, además de proporcionar el reembolso.

Si emites una revocación con la llamada de reembolso por la compra de la suscripción, la suscripción se cancela de inmediato y se activa unaSUBSCRIPTION_REVOKEDnotificación para desarrolladores en tiempo real. Lee la guía de administración del ciclo de vida de las suscripciones sección Revocaciones para obtener información sobre cómo controlar estos eventos.

Ejemplo:

  1. Para celebrar el comienzo de la nueva Copa Mundial, la app de deportes electrónicos Fútbol-Not-Soccer decide sortear camisetas virtuales gratuitas para todos los usuarios que compren nuevos kits en las primeras 24 horas.

  2. Football-Not-Soccer usa la API de orders.refund sin pasar un parámetro de revocación para reembolsar las compras de camisetas a los ganadores.

Cómo revocar y reembolsar una suscripción mediante un token de compra

En algunos casos de uso, es posible que debas revocar el acceso a la suscripción de un usuario y reembolsarlo. La Facturación Play ofrece reembolsos parciales, incluidos los reembolsos prorrateados que puedes emitir mediante la API de subscriptionsv2.revoke. Con este extremo, puedes especificar revocationContext para determinar cómo se calcula el reembolso.

Esta acción activa una notificación para desarrolladores en tiempo real SUBSCRIPTION_REVOKED. Tu app debe controlar estas cancelaciones como se describe en Revocaciones.

Ejemplo:

  • Compra con el token de compra 1a2b3c4d5e6f7g8h9i0j
  • Aplicación con el nombre de paquete com.your.app
  • Intención de emitir un reembolso prorrateado

Solicitud HTTP POST:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

Cuerpo de la solicitud:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

Reembolsos prorrateados

Si necesitas rescindir una suscripción y reembolsar de forma parcial el tiempo de derecho restante, emite un reembolso prorrateado. Usa la función purchases.subscriptionsv2.revoke y establece "proratedRefund": {} como el tipo de reembolso.

Ejemplo:

  1. María tiene una suscripción de 30 días con renovación automática al plan de transmisión mensual de SuperMovies. Ha usado el servicio con alegría durante un tiempo. María se comunica con el servicio de atención al cliente el día 15 de su ciclo de facturación y comunica que se mudará al extranjero y no podrá usar el servicio más a partir del día siguiente.

  2. El servicio de atención al cliente localiza los detalles de compra de la suscripción de María en su sistema y activa una llamada a purchases.subscriptionsv2.revoke para solicitar un reembolso prorrateado.

  3. El servicio de atención al cliente le dice a María que debería obtener un reembolso de aproximadamente el 50% del precio de la suscripción y que el acceso al servicio se cancele de inmediato.