В этом документе описывается, как перейти с 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 выполните следующие шаги:
Обновите версию зависимости Play Billing Library в файле
build.gradleвашего приложения.dependencies { def billingVersion = 8.0.0 implementation "com.android.billingclient:billing:$billingVersion" }(Применимо только при обновлении с PBL 6 до PBL 8). Обработка изменений API, связанных с подписками, в вашем приложении.
В таблице ниже перечислены API, связанные с подписками, которые были удалены в PBL 8, а также соответствующие альтернативные API, которые необходимо использовать в вашем приложении.
Ранее устаревший API был удален в PBL 8. Альтернативный API для использования setOldSkuPurchaseToken setOldPurchaseToken setReplaceProrationMode setSubscriptionReplacementMode setReplaceSkusProrationMode setSubscriptionReplacementMode Обновите реализацию метода
queryProductDetailsAsync.Произошло изменение сигнатуры метода
ProductDetailsResponseListener.onProductDetailsResponse, что требует внесения изменений в реализациюqueryProductDetailsAsyncв вашем приложении. Для получения дополнительной информации см. раздел «Показ товаров, доступных для покупки» .Обработайте удалённые 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 (Рекомендуется) Включить автоматическое переподключение к службе.
Библиотека Play Billing может попытаться автоматически восстановить соединение со службой, если вызов API выполняется во время отключения службы. Для получения дополнительной информации см. раздел «Включение автоматического переподключения к службе» .
Дополнительные изменения по желанию.
Поддержка обработки незавершенных покупок для предоплаченных тарифных планов. Для получения дополнительной информации см. раздел «Обработка подписок и незавершенных транзакций» .
Виртуальные подписки в рассрочку. Для получения дополнительной информации см. раздел «Интеграция подписок в рассрочку» .