Únete a ⁠ #Android11: The Beta Launch Show el 3 de junio.

Cómo agregar funciones específicas de productos únicos

En este documento, se explica cómo implementar funciones específicas de productos únicos.

La Facturación Google Play admite los siguientes tipos de productos únicos:

  • Los productos únicos no consumibles son aquellos que tienen un efecto permanente, como una actualización premium. Para evitar que los usuarios vuelvan a comprar esos productos, no debes marcarlos como productos consumidos.

  • Los productos únicos consumibles son aquellos que tienen beneficios temporales y que se pueden volver a comprar, como dinero o vidas adicionales en un juego. Para volver a habilitar la compra de un producto único consumible, debes enviar una solicitud de consumo a Google Play.

Cómo indicar que se consumió un producto único

Para indicar que se consumió un producto único, llama a consumeAsync() en tu instancia de BillingClient. Incluye el token de compra que Google Play debe ofrecer para volver a comprar. También debes pasar un objeto que implemente la interfaz ConsumeResponseListener. Este objeto controla el resultado de la operación de consumo. Puedes anular el método onConsumeResponse() de la interfaz ConsumeResponseListener, que llama la biblioteca de Facturación Google Play cuando finaliza la operación.

Las compras exitosas generan un token de compra, un identificador único que representa un solo producto integrado en la aplicación que el usuario compró. También puedes recuperar el token asociado si llamas a getPurchaseToken() en un objeto Purchase.

El siguiente ejemplo ilustra el consumo de un producto con el token de compra asociado:

Kotlin

    val consumeParams =
        ConsumeParams.newBuilder()
            .setPurchaseToken(/* token */)
            .setDeveloperPayload(/* payload */)
            .build()

    billingClient.consumeAsync(consumeParams, { billingResult, outToken ->
        if (billingResult.responseCode == BillingResponse.OK) {
            // Handle the success of the consume operation.
            // For example, increase the number of coins inside the user's basket.
        }
    })

    

Java

    ConsumeParams consumeParams =
        ConsumeParams.newBuilder()
            .setPurchaseToken(/* token */)
            .setDeveloperPayload(/* payload */)
            .build();

    ConsumeResponseListener listener = new ConsumeResponseListener() {
        @Override
        public void onConsumeResponse(BillingResult billingResult, String outToken) {
                if (billingResult.getResponseCode() == BillingResponse.OK) {
                    // Handle the success of the consume operation.
                    // For example, increase the number of coins inside the user's basket.
        }
    };

    billingClient.consumeAsync(consumeParams, listener);

    

Como a veces las solicitudes de consumo pueden fallar, debes verificar el servidor de backend seguro para asegurarte de que no se hayan usado todos los tokens de compra. Otra alternativa es esperar a recibir una respuesta de consumo correcta de Google Play antes de aprovisionar el elemento. Si decides retener compras del usuario hasta que Google Play envíe una respuesta de consumo correcta, debes tener mucho cuidado de no perder la compra después de la solicitud de consumo.

Cómo implementar una promoción para un producto único

Las promociones y los códigos promocionales te permiten ofrecer productos únicos o pruebas gratuitas de suscripciones a una cantidad limitada de usuarios. Si quieres implementar códigos promocionales para productos únicos, consulta Cómo implementar una promoción.

Próximos pasos

Después de agregar funciones específicas de productos únicos, consulta las Prácticas recomendadas.