В этом документе описывается, как перейти с Google Play Billing Library (PBL) 6 или 7 на PBL 8 и как интегрировать его с новыми возможностями дополнительной подписки.
Полный список изменений в версии 8.0.0 см. в [примечаниях к выпуску][1].
Обзор
В PBL 8 внесены улучшения в существующие API, а также удалены ранее устаревшие API. Эта версия библиотеки также включает новые API для разовых продуктов.
Обратная совместимость для обновления PBL
Для перехода на PBL 8 необходимо обновить или удалить некоторые из существующих ссылок на API в вашем приложении, как описано в [примечаниях к выпуску][8] и далее в этом руководстве по миграции.
Обновление с 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][9].Произошло изменение в сигнатуре метода [
ProductDetailsResponseListener.onProductDetailsResponse][2], что требует внесения изменений в ваше приложение для реализации [queryProductDetailsAsync][9]. Для получения дополнительной информации см. [Показать товары, доступные для покупки][3].Обработайте удалённые 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 будет выполнен во время отключения службы. Для получения дополнительной информации см. [Включить автоматическое переподключение службы][6].
Дополнительные изменения по желанию.
Поддержка ожидающих покупок для предоплаченных тарифов. Для получения дополнительной информации см. [Обработка подписок и ожидающих транзакций][4].
Виртуальные подписки в рассрочку. Для получения дополнительной информации см. [Интеграция подписок в рассрочку][5].
[1]: /google/play/billing/release-notes [2]: /reference/com/android/billingclient/api/ProductDetailsResponseListener#onProductDetailsResponse(com.android.billingclient.api.BillingResult,java.util.List%3Ccom.android.billingclient.api.ProductDetails%3E) [3]: /google/play/billing/integrate#show-products [4]: /google/play/billing/subscriptions#pending [5]: /google/play/billing/subscriptions#installments [6]: /google/play/billing/integrate#automatic-service-reconnection [8]: /google/play/billing/release-notes [9]: /reference/com/android/billingclient/api/BillingClient#queryProductDetailsAsync