订阅升级到 inapp 产品

Posted

技术标签:

【中文标题】订阅升级到 inapp 产品【英文标题】:subscription upgrade to inapp product 【发布时间】:2018-06-24 20:09:33 【问题描述】:

在我的项目中,很少有用户已经购买了订阅产品并且他们每年都在付费。我们想为他们提供一次性升级(应用内购买)优惠。

当我参考android文档时,它说我们可以从一个订阅计划更改为另一个(意味着从“年度计划”更改为“月度计划”。但是可以从订阅更改为inapp吗?和如果我这样做了,Google play 是否会根据订阅的剩余金额向用户收费?

编辑: 我正在使用支付库的 IABhelper v3 版本。这不支持将“订阅”产品升级为“inapp”产品。当我尝试这样做时,我得到了以下错误。

【问题讨论】:

【参考方案1】:

不,您不能更改购买类型。

升级或降级只能在不同的订阅周期间隔之间进行,因为 Google Play 商店会在两种订阅类型之间发生变化。 该过程在Subscription Upgrade/Downgrade部分进行了解释:

活动订阅被取消并创建新订阅。

我们建议您使用Play Billing Library 将 Android 应用内结算集成到您的应用中。升级应该使用launchBillingFlow()方法完成,将参数设置到BillinFlowParams对象中,使用addOldSku()方法设置要替换的订阅,使用setSku()方法设置目标新订阅:

BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
        .setSku(newSubsSkuId)
        .addOldSku(oldSubsSKUId)
        .setType(SkuType.SUBS);
int responseCode = mBillingClient.launchBillingFlow(builder.build());

如果您想保证为您的用户提供永久功能,而不是更改为应用内产品,您可以创建一个 promo code 以提供给这些用户,然后在他们使用促销代码后取消订阅。

【讨论】:

是的,这就是我们最终要做的。我们已要求用户购买“inapp”产品并要求他们取消订阅续订。但用户并不满意,因为他们被要求在下一次到期前付款。【参考方案2】:

我强烈推荐 GitHub 上的 android-inapp-billing-v3 库。您可以使用下面的这个库轻松完成。

BillingProcessor bp = new BillingProcessor(this, "YOUR LICENSE KEY FROM GOOGLE PLAY CONSOLE HERE", this);    
bp.subscribe(YOUR_ACTIVITY, "YOUR SUBSCRIPTION ID FROM GOOGLE PLAY CONSOLE HERE");

【讨论】:

我知道这个库,但是它支持从订阅升级到应用程序吗? 是的。我也有同样的东西,我用过。 github.com/anjlab/android-inapp-billing-v3/issues/234 不,Google 似乎支持从一种“订阅”产品升级到另一种“订阅”产品。他们不支持从一种“订阅”产品升级到另一种“inapp”产品。我收到以下错误“我们无法更改您的订阅计划” 谷歌支持升级和降级订阅。文档说“用户可以在订阅期间升级或降级订阅。旧订阅的成本按比例计算,未使用的部分应用于替换订阅。”。您可以从此链接查看。 developer.android.com/google/play/billing/… @gencaysahinn不可能升级/降级两种不同的产品类型。正如我在回答中提到的那样,我还添加了关于您可以做什么的建议。

以上是关于订阅升级到 inapp 产品的主要内容,如果未能解决你的问题,请参考以下文章

在 iTunes 中提交带有新应用的 InApp 产品以供审核

Apple 订阅或应用内购买在商店版本中不起作用 - 应用内产品详细信息未显示或获取

如何为 Android 应用订阅生成促销代码?

使用Google Play计费库和系统会在3天之内退还Inapp产品的退款

Inapp Purchase:我们可以在itunes connect中动态添加一堆产品吗?

Android - 检查用户是否从其他软件包购买了InApp产品[重复]