我有一个 iPhone 应用程序,它还具有自动更新产品作为应用程序内购买功能。这些产品是我们未来长达 1 年服务的订阅。我们想在下一个版本中从我们的应用程序中删除整个应用内购买和自动更新产品。
为此,我们删除了应用程序中的注册选项,因此新用户应该无法注册。现在我们想禁用所有现有用户的自动续订。
我怎样才能做到这一点?在 iTunes Connect 中删除我们应用的应用内产品是否足够?用户会收到通知吗?
我有一个 iPhone 应用程序,它还具有自动更新产品作为应用程序内购买功能。这些产品是我们未来长达 1 年服务的订阅。我们想在下一个版本中从我们的应用程序中删除整个应用内购买和自动更新产品。
为此,我们删除了应用程序中的注册选项,因此新用户应该无法注册。现在我们想禁用所有现有用户的自动续订。
我怎样才能做到这一点?在 iTunes Connect 中删除我们应用的应用内产品是否足够?用户会收到通知吗?
根据 Apple 的说法(请参阅WWDC 2011 Session 510,In App Purchases for iOS and OS X,在 48:55 标记处),作为开发人员,您可以做的唯一事情是防止订阅自动续订:
在这两种情况下,通知电子邮件都会发送给订阅者,但不会立即发送。谈话中说苹果会在(每年)续订前 10 天进行检查,并在那时发送电子邮件。但是,它没有在任何地方记录,因此我将其视为实现细节。
我已经用我自己的(每月)应用程序多次完成了后者(删除产品),它似乎像宣传的那样工作。
一个重要提示:如果您的应用是报亭应用,它必须至少有一个可用的自动续订订阅。如果您删除最后一个,该应用程序将从 App Store 中删除。已经购买的用户仍然可以使用它,并且可以从应用商店的“以前购买的”部分下载副本,但不会出现新的副本以供在 App Store 中购买。
这将取决于您如何实现您的系统。您是从自己的服务器检查收据(并提供数据/服务),还是直接使用 Apple 的服务器在应用程序内完成所有操作?
在 iTunes Connect 中,您可以将产品从销售中删除,立即生效或在将来生效。我怀疑这足以停止续订。(请记住,您可以在沙盒中使用缩短的时间尺度进行测试。)但如果不是:
如果您使用自己的服务器来验证收据,请给它一个不正确的共享密钥,以便验证步骤失败。这意味着订阅有效期将返回为 false(尽管出于“错误”原因),因此您的客户将无法续订。
如果您在应用程序中执行此操作,请生成一个新的共享密码,这样您现有结构中的密码就会不正确。然后,如上。
如果可以的话,我建议向您当前的用户发送通知,通知他们更改,建议他们更改,并让他们知道将来会“失败”,但这没关系。