Varios productos para productos únicos

En este documento, se describe cómo puedes integrar tu app con la función de varios productos de la Biblioteca de Facturación Play (PBL).

La función de varios productos para productos únicos (OTP) te permite combinar varios productos únicos en una sola unidad. Luego, estos productos agrupados se pueden comprar, facturar y administrar de forma colectiva. También puedes crear ofertas de descuento para estos OTP agrupados y, así, incentivar la compra de productos.

Consideraciones

Cuando crees paquetes de productos únicos, ten en cuenta las siguientes consideraciones:

  • No puedes incluir suscripciones en un paquete de productos únicos.
  • No puedes tener una combinación de contenido digital y servicio en el mismo paquete de productos único.
  • Los productos únicos incluidos en el paquete deben estar disponibles para su descarga inmediata. Por ejemplo, un paquete de productos único no puede tener una compra de pedido por adelantado porque no está disponible para su descarga inmediata.
  • El producto múltiple para productos únicos no admite la opción de compra de alquiler.

Cómo realizar la integración con la Biblioteca de Facturación Play

En esta sección, se supone que conoces los pasos iniciales de la integración de PBL, como agregar la dependencia de PBL a tu app, inicializar el BillingClient y conectarte a Google Play. En esta sección, se abordan los aspectos de la integración de PBL específicos para las compras de OTP de varios productos.

Cómo iniciar un flujo de compra

Para iniciar un flujo de compra de productos únicos con varios productos, sigue estos pasos:

  1. Crea una lista de productos que incluya todos los productos únicos con el método QueryProductDetailsParams.Builder.setProductList.

  2. Recupera todos tus productos únicos con el método BillingClient.queryProductDetailsAsync.

    En el siguiente ejemplo, se muestra cómo recuperar todos tus productos únicos:

    Java

    billingClient.queryProductDetailsAsync(
    queryProductDetailsParams,
    new ProductDetailsResponseListener() {
      public void onProductDetailsResponse(
          BillingResult billingResult, QueryProductDetailsResult productDetailsResult) {
        // check billingResult
        // …
        // process productDetailsList returned by QueryProductDetailsResult
        ImmutableList productDetailsList = productDetailsResult.getProductDetailsList();
        for (ProductDetails productDetails : productDetailsList) {
          for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
              productDetails.getOneTimePurchaseOfferDetailsList()) {
                 // …
          }
        }
      }
    });
  3. Establece el objeto ProductDetails para cada producto único.

  4. Especifica los detalles del producto único en el método BillingFlowParams.Builder.setProductDetailsParamsList. La clase BillingFlowParams especifica los detalles de un flujo de compra.

    En el siguiente ejemplo, se muestra cómo iniciar el flujo de facturación para una compra con OTP de varios productos:

    Java

    BillingClient billingClient =
       BillingClient.newBuilder()
        // set other options
        .build();
    // ProductDetails obtained from queryProductDetailsAsync().
    ProductDetails productDetails1 = ...;
    ProductDetails productDetails2 = ...;
    ArrayList productDetailsList = new ArrayList<>();
    productDetailsList.add(productDetails1);
    productDetailsList.add(productDetails2);
    BillingFlowParams billingFlowParams =
    BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsList)
        .build();
    billingClient.launchBillingFlow(billingFlowParams);

Procesa compras

El procesamiento de compras con OTP de varios productos es el mismo que el de las compras existentes de un solo elemento, como se describe en Integra la Biblioteca de Facturación Google Play en tu app. La única diferencia es que debes otorgar derechos para todos los productos en lugar de solo uno para las compras con OTP de varios productos, de modo que el usuario pueda recibir varios derechos con una sola compra. Una compra con OTP de varios productos devuelve varios elementos que se pueden recuperar con Purchase.getProducts() en la biblioteca de Facturación Google Play y, luego, la lista lineItems en purchases.products.get de la API de Google Play Developer.

Notificaciones para desarrolladores en tiempo real

El campo sku no se proporciona en RTDN para las compras de OTP de varios productos. Las compras con OTP de varios productos representan más de un producto. Por lo tanto, puedes usar las APIs de Play Developer para obtener los datos de compra y ver todos los elementos que contiene.

Reembolsos

En una compra con OTP de varios productos, los usuarios no pueden solicitar reembolsos de elementos individuales, y tú tampoco puedes emitir reembolsos de elementos individuales. Sin embargo, se permite solicitar y emitir reembolsos para toda la compra de OTP de varios productos. Si cancelas la compra de un OTP de varios productos para un usuario, se cancelarán todos los derechos asociados a la compra.

Informes y conciliación financieros

Usa el Informe de ingresos para conciliar tus compras activas de OTP de varios productos con las transacciones y las liquidaciones de Google Pay en Play. Cada concepto de la línea de transacción tiene un ID de pedido. En el caso de una compra con OTP de varios productos, los informes de Ingresos y Ventas estimadas incluirán filas separadas (con el mismo ID de pedido) para cada transacción, como cargos, comisiones, impuestos y reembolsos, para cada artículo involucrado.

En el caso de los paneles de Play Console, ten en cuenta lo siguiente:

  • Las estadísticas de ingresos que se presentan en la sección Informes financieros de la consola se desglosan por productos individuales.

  • La administración de pedidos refleja las compras con OTP de varios productos y muestra listas detalladas de lo que se compró. Desde la administración de pedidos, puedes revocar, cancelar o reembolsar por completo la compra de un usuario.