Agrega 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 proporcionan un efecto permanente, como una actualización premium. Para evitar que los usuarios vuelvan a comprar esos productos, no debes marcarlos como productos que se consumen.

  • Los productos únicos que se consumen son aquellos que proporcionan beneficios temporales y que se pueden comprar, como dinero o vidas adicionales para 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 poner a disposición 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 que se realizan correctamente generan un token de compra, que es 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 usando 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 pueden fallar las solicitudes de consumo, debes verificar el servidor de backend seguro para asegurarte de que no se hayan usado todos los token 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 o 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.