Как использовать режим пропорциональности в подписке на приложение Android

Я использую два плана подписки ежемесячно и ежегодно в своем приложении для Android. Если пользователь подписался на месячный план, я хочу дать пользователю возможность перейти на годовой план. Я прочитал официальный документ, мне нужно использовать BillingFlowParams.ProrationMode, но я не могу понять, как мне это реализовать.

Вот пример кода:

BillingFlowParams flowParams = BillingFlowParams.newBuilder()
        .setSkuDetails(skuDetails)
        .setOldSku(oldSku)
        // I need to replace replaceSkusProrationMode to DEFERRED
        // how do I get complete path to DEFERRED
        .setReplaceSkusProrationMode(replaceSkusProrationMode)
        .build()
int responseCode = billingClient.launchBillingFlow(activity, flowParams);

используя этот связь, я получаю значение int для DEFERRED, равное 4, но не рекомендуется использовать жестко заданное значение.

Как мне этого добиться?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
788
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я использовал более старую версию billingclient, обновление до более новой версии решило мою проблему.

я изменился на

implementation 'com.android.billingclient:billing:2.0.2'

От

implementation 'com.android.billingclient:billing:1.0'

затем я получаю опцию setReplaceSkusProrationMode.

Вот как я использую сейчас:

BillingFlowParams flowParams1 = BillingFlowParams.newBuilder()
                        .setOldSku(monthly_test)
                        .setReplaceSkusProrationMode(BillingFlowParams.ProrationMode.DEFERRED)
                        .setSkuDetails(yearly_test)
                        .build();

Другие вопросы по теме