在特定日期禁用一项应用内购买

Posted

技术标签:

【中文标题】在特定日期禁用一项应用内购买【英文标题】:Disable one in-app purchase as of a certain date 【发布时间】:2018-12-02 09:54:42 【问题描述】:

我有一个 android 应用程序,该应用程序具有多个可用作应用程序内购买的功能。我们已在 Google Play 和 Amazon App Store 上发布了该应用程序。我们需要在某个日期停止提供其中一项功能。但是,已经购买该功能的客户应该能够在该日期之后使用它,即使他们在新设备上安装了该应用程序。他们还应该能够购买其他功能。

我在想我们可以简单地更新我们的应用程序,以便 UI 不提供购买相关功能的选项。但是,这不会阻止使用旧版本应用程序的用户购买该功能。所以看起来除了从应用程序中删除功能购买逻辑(但不是功能本身)之外,我们还需要做一些事情来关闭商店端的购买。但无论是什么,它仍然必须允许应用检查用户之前是否购买过该功能。

我无法从 Google Play 或 Amazon App Store 文档中找出如何进行设置。根据我所读到的内容,我的理解是(从任何一家商店)移除该商品将导致对之前购买的检查失败。有可能做我所描述的吗?我们需要为这两家商店提供解决方案。

附:我确实在 SO 上找到了一个相关问题:Are Google Play in-app purchases still valid if the app or the product is removed? 但是,它没有答案,而且框架也有点太窄了。 (我不是假设必须删除该产品,我还需要了解亚马逊商店。)

【问题讨论】:

如果我的想法对我有用,可以从 Google Play 控制台禁用/停用特定产品,不幸的是目前我无法访问商家帐户来测试它。 @azizbekian - 感谢您的评论。我知道在 Google Play 上可以做到这一点。您知道停用产品会对该产品的过去购买产生影响吗?致电getPurchases() 是否仍会在结果中包含该产品?另外,您知道亚马逊应用商店是否存在类似的功能? Would a call to getPurchases() still include that product in the result? 查询购买的商品仍会在列表中返回已停用的产品(再次,如果我愿意的话)。抱歉,从未使用过亚马逊应用商店。 【参考方案1】:

我在想我们可以简单地更新我们的应用程序,以便 UI 没有提供购买相关功能的选项。然而, 这不会阻止使用旧版本应用程序的用户 购买该功能。所以它似乎除了删除 来自应用程序的功能购买逻辑(但不是功能本身),我们 需要做一些事情来关闭商店端的购买。

对于 Amazon Appstore,您需要联系 their support team 以取消相关应用内商品(截至目前,它还不是自助服务)。一旦被禁止,该应用内商品将不再可购买。它不会影响过去购买该商品的现有用户。

【讨论】:

谢谢。我已经就此事联系了亚马逊支持,我们会看看他们怎么说。【参考方案2】:

在应用内购买方面,我总是选择在我自己的服务器中实现所有内容。当用户购买东西时,我会立即消费它并通知我的服务器。然后我不再查询谷歌或亚马逊,而是查询我自己的服务器,这给了我很大的灵活性。如果我遇到类似您的问题,我只需添加几行代码!

由于您已经发布了应用程序,除非您愿意强制用户将应用程序更新到较新版本,否则这可能对您不起作用。 (希望你能做到!)

您提到如果您停用产品并且没有文档,您不知道会发生什么,那么您可以在测试项目中尝试一下,看看会发生什么!它不应该那么难。如果这不像您预期​​的那样工作,您无能为力,您的逻辑在您的应用程序中并且它已经发布了......

【讨论】:

感谢您的回答。不幸的是,运行我们自己的服务器不是一种选择。我希望避免尝试确定答案,因为那不可靠。 (没有文档,今天有效的东西明天可能不会有效。)

以上是关于在特定日期禁用一项应用内购买的主要内容,如果未能解决你的问题,请参考以下文章

如何确定购买该应用(不是应用内购买)的原始版本或日期

如何使用应用内结算来禁用应用程序中的广告?

iOS 应用内购买。识别购买的产品(非消耗品)。

无法创建应用内产品,因为创建选项已禁用

iPhone + 应用内购买 + 更改提示信息

为新版本的应用启用应用内购买?