Переход на Google Play Billing Library 8 с версий 6 или 7

В этом документе описывается, как перейти с Google Play Billing Library (PBL) 6 или 7 на PBL 8 и как интегрировать его с новыми возможностями дополнительной подписки.

Полный список изменений в версии 8.0.0 см. в примечаниях к выпуску .

Обзор

В PBL 8 внесены улучшения в существующие API, а также удалены ранее устаревшие API. Эта версия библиотеки также включает новые API для разовых продуктов.

Обратная совместимость для обновления PBL

Для перехода на PBL 8 необходимо обновить или удалить некоторые из существующих ссылок на API в вашем приложении, как описано в примечаниях к выпуску и далее в этом руководстве по миграции.

Обновление с PBL 6 или 7 до PBL 8

Для обновления с PBL 6 или 7 до PBL 8 выполните следующие шаги:

  1. Обновите версию зависимости Play Billing Library в файле build.gradle вашего приложения.

    dependencies {
      def billingVersion = 8.0.0
      implementation "com.android.billingclient:billing:$billingVersion"
    }
    
  2. (Применимо только при обновлении с PBL 6 до PBL 8). Обработка изменений API, связанных с подписками, в вашем приложении.

    В таблице ниже перечислены API, связанные с подписками, которые были удалены в PBL 8, а также соответствующие альтернативные API, которые необходимо использовать в вашем приложении.

    Ранее устаревший API был удален в PBL 8. Альтернативный API для использования
    setOldSkuPurchaseToken setOldPurchaseToken
    setReplaceProrationMode setSubscriptionReplacementMode
    setReplaceSkusProrationMode setSubscriptionReplacementMode
  3. Обновите реализацию метода queryProductDetailsAsync .

    Произошло изменение сигнатуры метода ProductDetailsResponseListener.onProductDetailsResponse , что требует внесения изменений в реализацию queryProductDetailsAsync в вашем приложении. Для получения дополнительной информации см. раздел «Показ товаров, доступных для покупки» .

  4. Обработайте удалённые API.

    Обновить с

    PBL 8 больше не поддерживает API, перечисленные в следующей таблице. Если в вашей реализации используются какие-либо из этих удаленных API, обратитесь к таблице для получения информации о соответствующих альтернативных API.

    Ранее устаревший API был удален в PBL 8. Альтернативный API для использования
    API queryPurchaseHistoryAsync См. историю покупок по запросу.
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases() (API без параметров) enablePendingPurchases(PendingPurchaseParams params)
    Обратите внимание, что устаревшая функция enablePendingPurchases() функционально эквивалентна функции enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) .
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync
    BillingClient.Builder.enableAlternativeBilling BillingClient.Builder.enableUserChoiceBilling
    Альтернативный слушатель биллинга UserChoiceBillingListener
    AlternativeChoiceDetails UserChoiceDetails

    Обновить с

    В таблице ниже перечислены API, удаленные в PBL 8, и соответствующие альтернативные API, которые необходимо использовать в вашем приложении.

    Ранее устаревший API был удален в PBL 8. Альтернативный API для использования
    API queryPurchaseHistoryAsync См. историю покупок по запросу.
    querySkuDetailsAsync queryProductDetailsAsync
    enablePendingPurchases() (API без параметров) enablePendingPurchases(PendingPurchaseParams params)
    Обратите внимание, что устаревшая функция enablePendingPurchases() функционально эквивалентна функции enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) .
    queryPurchasesAsync(String skuType, PurchasesResponseListener listener) queryPurchasesAsync

  5. (Рекомендуется) Включить автоматическое переподключение к службе.

    Библиотека Play Billing может попытаться автоматически восстановить соединение со службой, если вызов API выполняется во время отключения службы. Для получения дополнительной информации см. раздел «Включение автоматического переподключения к службе» .

  6. Дополнительные изменения по желанию.