Как перейти на библиотеку Google Play Платежей версии 8 с версии 6 или 7

В этом документе рассказывается, как перейти с библиотеки Google Play Платежей версии 6 или 7 на версию 8 и как интегрировать новые необязательные функции подписок.

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

Обзор

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

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

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

Переход с PBL 6 или 7 на PBL 8

Чтобы перейти с PBL 6 или 7 на PBL 8, выполните следующие действия:

  1. Обновите версию зависимости библиотеки Play Платежей в файле 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
    AlternativeBillingListener 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 Платежей может попытаться автоматически восстановить подключение к сервису, если вызов API выполняется, когда сервис отключен. Подробнее о том, как включить автоматическое повторное подключение сервиса…

  6. Необязательные изменения.