En este documento, se describe cómo migrar de la biblioteca de Google Play Billing (PBL) 6 o 7 a la PBL 8 y cómo realizar la integración con las nuevas funciones opcionales de suscripción.

Para obtener una lista completa de los cambios de la versión 8.0.0, consulta las notas de la versión.

Descripción general

PBL 8 contiene mejoras en las APIs existentes, junto con la eliminación de las APIs que dejaron de estar disponibles anteriormente. Esta versión de la biblioteca también incluye nuevas APIs para productos únicos.

Retrocompatibilidad para la actualización de PBL

Para migrar a la PBL 8, debes actualizar o quitar algunas de las referencias de API existentes de tu app, como se describe en las notas de la versión y más adelante en esta guía de migración.

Actualiza de PBL 6 o 7 a PBL 8

Para actualizar de PBL 6 o 7 a PBL 8, sigue estos pasos:

  1. Actualiza la versión de la dependencia de la Biblioteca de Facturación Play en el archivo build.gradle de tu app.

    dependencies {
      def billingVersion = 8.0.0
      implementation "com.android.billingclient:billing:$billingVersion"
    }
    
  2. (Solo se aplica a la actualización de PBL 6 a PBL 8). Controla los cambios en la API relacionados con la suscripción en tu app.

    En la siguiente tabla, se enumeran las APIs relacionadas con la suscripción que se quitan en la PBL 8 y la API alternativa correspondiente que debes usar en tu app.

    Se quitó la API que había dejado de estar disponible en PBL 8 API alternativa que se usará
    setOldSkuPurchaseToken setOldPurchaseToken
    setReplaceProrationMode setSubscriptionReplacementMode
    setReplaceSkusProrationMode setSubscriptionReplacementMode
  3. Actualiza la implementación del método queryProductDetailsAsync.

    Hay un cambio en la firma del método ProductDetailsResponseListener.onProductDetailsResponse, que requiere cambios en tu app para la implementación de queryProductDetailsAsync. Para obtener más información, consulta Cómo mostrar productos disponibles para comprar.

  4. Controla las APIs quitadas.

    Actualiza desde

    PBL 8 ya no admite las APIs que se indican en la siguiente tabla. Si tu implementación usa alguna de estas APIs quitadas, consulta la tabla para ver las APIs alternativas correspondientes.

    Se quitó la API que había dejado de estar disponible en PBL 8 API alternativa que se usará
    APIs de queryPurchaseHistoryAsync Consulta Cómo consultar el historial de compras.
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases() (API sin parámetros) enablePendingPurchases(PendingPurchaseParams params)
    Ten en cuenta que enablePendingPurchases(), que dejó de estar disponible, es funcionalmente equivalente a enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync
    BillingClient.Builder.enableAlternativeBilling BillingClient.Builder.enableUserChoiceBilling
    AlternativeBillingListener UserChoiceBillingListener
    AlternativeChoiceDetails UserChoiceDetails

    Actualiza desde

    En la siguiente tabla, se enumeran las APIs que se quitaron en el PBL 8 y las APIs alternativas correspondientes que debes usar en tu app.

    Se quitó la API que había dejado de estar disponible en PBL 8 API alternativa que se usará
    APIs de queryPurchaseHistoryAsync Consulta Cómo consultar el historial de compras.
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases() (API sin parámetros) enablePendingPurchases(PendingPurchaseParams params)
    Ten en cuenta que enablePendingPurchases(), que dejó de estar disponible, es funcionalmente equivalente a enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync

  5. (Recomendado) Habilita la reconexión automática del servicio.

    La biblioteca de Play Billing puede intentar restablecer automáticamente la conexión del servicio si se realiza una llamada a la API mientras el servicio está desconectado. Para obtener más información, consulta Cómo habilitar la reconexión automática de servicios.

  6. Cambios opcionales.