如何在应用订阅android中使用按比例分配模式

Posted

技术标签:

【中文标题】如何在应用订阅android中使用按比例分配模式【英文标题】:How to use proration mode in app subscription android 【发布时间】:2019-11-16 02:53:24 【问题描述】:

我在我的 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);

使用 link 我得到 DEFERRED 的 int 值为 4,但使用硬编码值不是一个好主意。

我应该如何做到这一点?

【问题讨论】:

【参考方案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();

【讨论】:

以上是关于如何在应用订阅android中使用按比例分配模式的主要内容,如果未能解决你的问题,请参考以下文章

Stripe - 年度“反向按比例”订阅

Android之使用weight属性实现控件的按比例分配空间

自动布局 - 如何分配内容以按比例填充屏幕[重复]

Stripe API 订阅

Qt如何按比例分配QTableView的列宽并且充满整个控件

如何使用 Android 应用为用户订阅 youtube 频道?