java - 如何在应用订阅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);
使用此链接,我得到 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();
推荐阅读
- javascript - 如何在没有硬编码的情况下传递数组的索引来更新“react-addons-update”的方法?
- sql - SQL Cast 怪癖
- regex - 301用正则表达式重定向404页面
- javascript - 从数组/Javascript中删除具有空值的对象
- dll - 有没有办法从任何地方的自动化中的#Prompt_assignment# 变量中提取数据?
- r - 在 dplyr 中添加满足条件的总行数的列
- java - 在 Android Studio 中使用 .so(共享对象)文件
- gcloud - 删除使用 gcloud 中的标签创建的主题、订阅和服务帐户
- azure - 使用在 Azure 通用区域中创建的应用程序连接到 Azure 中国中的 Azure 订阅会出现“AADSTS70001”错误
- python - 在python中设置字典值不会更新值?