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

标签 java android in-app-subscription google-pay android-inapp-purchase

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

我应该如何实现这个目标?

最佳答案

我使用旧版本的 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();

关于java - 如何在应用程序订阅android中使用按比例分配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56903607/

相关文章:

ios - 获取用户从服务器到服务器的订阅 ios 通知

java - 计算整数数组中的重复元素

java - 在 Java 中使用 Jackson JSON 库解析 ASP.NET MVC 返回日期

android - org.json.JSONObject vs Gson 库 JsonObject

android - 在Android中流式传输音频时产生噪音

android - Google Play - 确认订阅的购买 token 时出现错误 "subscriptionNotOwnedByUser"

java - 如何从单独的线程更新 UI 线程而不阻塞它?

java - 在Java中递归地对数字的数字进行排序

android - 如何防止 BluetoothGattCallback 一次执行多次

ios - 在 iOS 应用程序中管理订阅的链接最终会出现空白屏幕