【发布时间】:2015-10-22 22:25:45
【问题描述】:
我正在尝试在我的 Android 应用中实现升级/降级订阅。我相信我已经正确实现了一切,但是在我的测试过程中它似乎没有正确运行。
我的应用有三个选项:每月、3 个月和 6 个月订阅选项。当我订阅任何选项时,我会调用以下函数,其中“sku”是所购买商品的 sku,“oldSkus”是其他商品的 sku。
buyIntentBundle = mService.getBuyIntentToReplaceSkus(5,
mContext.getPackageName(), oldSkus, sku, itemType, extraData);
当我订阅 3 个月选项时,它运行良好,并且该应用正确接收来自 Play 商店的 3 个月订阅购买。如果我尝试升级到 6 个月订阅,则会出现以下流程:
- 提示“更改订阅”对话框,提供我的“当前计划”和“新计划” -> 单击“继续”
- 概述了计划细节。点击 -> '订阅' -> '确认'
- 交易成功,购买数据返回到应用程序。
- 接收声称订阅的电子邮件已更新详细信息:
- 之前的计划:3 - 个月:取消
- 新计划:6 个月:立即生效
- 转到 Play 商店帐户并查看订阅
- 3 个月计划 - 使用取消按钮订阅
- 6 个月计划 - 使用取消按钮订阅
- 启动应用程序和观察者 getInventory 结果
- 3 个月计划 - 用户已订阅
- 6 个月计划 - 用户已订阅
据我所知,Play 商店未正确取消旧订阅。我希望这只会发生,因为我使用的是测试员帐户,并且测试订阅时发生的 $/day 会导致按比例评分出现一些问题。
更新:Google 已回复我的请求并通知我他们已将问题升级。当我收到其他回复时,我会再次更新。
【问题讨论】:
-
我现在也在测试这个。我遇到了类似的行为。
-
调用 Google Play Developer Api 正在返回应取消的订阅,但仍返回 autoRenewing = true。请注意:developer.android.com/google/play/billing/… 声明订阅已取消(根据developers.google.com/android-publisher/api-ref/purchases/… 取消(未撤销)订阅在订阅结束前有效,尽管在升级方案中没有多大意义)。希望谷歌对此提供一些意见。
-
你有没有在生产环境中尝试过?
-
此:developer.android.com/google/play/billing/billing_testing.html 声明:“重要提示:退款和撤销方法不支持测试购买。”也许这就是应用内计费沙盒不支持升级订阅的原因(旧的必须在内部撤消才能使升级过程有意义)。
-
感谢您的所有意见@gswierczynski。我还没有尝试生产,但我正在与谷歌谈判,希望很快能得到一个可靠的答案。将不断更新此问题。