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

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

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

Обзор

В библиотеке Google Play Платежей версии 7 улучшена обработка платежей для существующих функций подписок. Эти необязательные улучшения добавляют поддержку оплаты в рассрочку, а также поддержку ожидающих покупок для предоплаченных подписок.

Обновление библиотеки Play Платежей с обратной совместимостью

Все новые API в библиотеке Google Play Платежей версии 7 необязательны, и разработчикам не нужно вносить изменения в API, чтобы выполнить обновление.

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

Переход с PBL 5 на PBL 7

В разделах ниже описано, как перейти с PBL 5 на PBL 7.

Обновите библиотеку Google Play Платежей

Обновите версию зависимости библиотеки Play Платежей в файле build.gradle приложения.

dependencies {
    def billingVersion = 7.0.0

    implementation "com.android.billingclient:billing:$billingVersion"
}

Затем обновите документацию по API, как описано в следующих разделах.

Как изменить подписки пользователя

В библиотеке Play Платежей версии 5 и более ранних для применения изменений к подпискам пользователей, например перехода на другой план, использовался метод ProrationMode. Этот API был удален и заменен на ReplacementMode.

Как обрабатывать изменения цен на подписки

Удален API launchPriceConfirmationFlow, ранее признанный устаревшим. Альтернативные варианты описаны в руководстве по изменению цен.

Как обрабатывать изменения API, связанные с подписками

Удалены устаревшие API setOldSkuPurchaseToken, setReplaceProrationMode и setReplaceSkusProrationMode.

Как обрабатывать ошибки библиотеки Play Платежей

Новый код NETWORK_ERROR указывает на проблемы с сетевым подключением между устройством пользователя и системой Google Play.

Коды SERVICE_TIMEOUT и SERVICE_UNAVAILABLE также были обновлены.

Подробнее о том, как обрабатывать коды ответа BillingResult…

Как обрабатывать транзакции в обработке

Библиотека Play Платежей больше не создает идентификатор заказа для незавершенных покупок. Для таких покупок идентификатор заказа указывается после того, как покупка переходит в статус PURCHASED. Убедитесь, что идентификатор заказа запрашивается только после полного завершения транзакции. Вы по-прежнему можете использовать токен покупки для своих записей.

Дополнительную информацию о том, как обрабатывать незавершенные покупки, можно найти в руководстве по интеграции библиотеки Play Платежей и руководстве по управлению жизненным циклом покупок.

Как обрабатывать удаленные API альтернативных платежных систем

Удалены BillingClient.Builder.enableAlternativeBilling, AlternativeBillingListener и AlternativeChoiceDetails. Вместо этого разработчикам следует использовать BillingClient.Builder.enableUserChoiceBilling() с UserChoiceBillingListener и UserChoiceDetails в обратном вызове прослушивателя.

Это обновление представляет собой переименование устаревших API без изменения их поведения.

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

В PBL 7 добавлены два новых необязательных API.

Поддержка незавершенных покупок для планов с предоплатой

Ознакомьтесь с руководством Как обрабатывать подписки и транзакции в обработке.

Подписки на виртуальную рассрочку

Ознакомьтесь с руководством по интеграции подписок с рассрочкой.

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

В разделах ниже описано, как перейти с PBL 6 на PBL 7.

Обновите библиотеку Google Play Платежей

Обновите версию зависимости библиотеки Play Платежей в файле build.gradle приложения.

dependencies {
    def billingVersion = 7.0.0

    implementation "com.android.billingclient:billing:$billingVersion"
}

Затем обновите документацию по API, как описано в следующих разделах.

Как обрабатывать изменения API, связанные с подписками

Удалены устаревшие API setOldSkuPurchaseToken, setReplaceProrationMode и setReplaceSkusProrationMode.

Как обрабатывать удаленные API альтернативных платежных систем

Удалены BillingClient.Builder.enableAlternativeBilling, AlternativeBillingListener и AlternativeChoiceDetails. Вместо этого разработчикам следует использовать BillingClient.Builder.enableUserChoiceBilling() с UserChoiceBillingListener и UserChoiceDetails в обратном вызове прослушивателя.

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

В PBL 7 добавлены два новых необязательных API.

Поддержка незавершенных покупок для планов с предоплатой

Ознакомьтесь с руководством Как обрабатывать подписки и транзакции в обработке.

Подписки на виртуальную рассрочку

Информацию о том, как интегрировать эти изменения в приложение, можно найти в руководстве по интеграции подписок с рассрочкой.