如何在App订阅Android中使用Proration模式



我在我的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值为4,但使用硬编码值不是一个好主意。

我应该如何实现?

我正在使用旧版本的billingclient升级到新版本解决了我的问题。

我更改为

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

来自

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

然后,我获得了SetReplepaceKusProrationMode的选项。

这里我现在如何使用:

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

最新更新