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. Estos productos agrupados se pueden comprar, facturar y administrar de forma colectiva. También puedes crear ofertas de descuento para estos OTP agrupados para incentivar las compras de productos.

Consideraciones

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

  • No puedes tener suscripciones en un paquete de productos únicos.
  • No puedes tener una combinación de contenido digital y servicio en el mismo paquete de productos únicos.
  • Los productos únicos agrupados deben estar disponibles para su descarga inmediata. Por ejemplo, un paquete de productos únicos no puede tener una compra de pedido anticipado porque no está disponible para su descarga inmediata.
  • La función de varios productos para productos únicos no admite la opción de compra de alquiler.

Integración con la Biblioteca de Facturación Play

En esta sección, se supone que estás familiarizado con los pasos iniciales de integración de la PBL, como agregar la dependencia de la PBL a tu app, inicializar BillingClient, y conectarte a Google Play. Esta sección se centra en los aspectos de integración de la PBL que son específicos de las compras de OTP de varios productos.

Cómo iniciar un flujo de compra

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

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

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

    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 ProductDetails objeto para cada producto único.

  4. Especifica los detalles del producto único en el BillingFlowParams.Builder.setProductDetailsParamsList método. 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 de 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);

Cómo procesar las compras

El procesamiento de compras de OTP de varios productos es el mismo que para las compras existentes de un solo artículo, como se describe en Cómo integrar la Biblioteca de Facturación Google Play en tu app. La única diferencia es que debes otorgar derechos de acceso para todos los productos en lugar de solo uno para las compras de OTP de varios productos, de modo que el usuario pueda recibir varios derechos de acceso con una sola compra. Una compra de OTP de varios productos muestra varios artículos 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 de 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 artículos que contiene.

Reembolsos

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

Informes y conciliación financiera

Usa el informe de ganancias para conciliar tus compras de OTP de varios productos activas con los pagos y las transacciones de Google Play. Cada elemento de línea de transacción tiene un ID de pedido. En el caso de una compra de OTP de varios productos, los informes de ganancias y ventas estimadas incluirán filas separadas (con el mismo ID de pedido) para cada transacción, como cargo, tarifa, impuesto y reembolso, para cada artículo involucrado.

Para los paneles en 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 de 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.