ios - 非续订订阅是否需要还原按钮?

标签 ios ios7 in-app-purchase xcode5

我的应用程序被拒绝,因为应用程序购买中未续订上的“恢复”按钮。我是否必须删除还原按钮?如果我必须这样做,那么用户将如何恢复其购买的产品。请提供帮助。

最佳答案

非续订订阅是消耗性的。因此,它们无法还原。因此,恢复按钮是没有意义的。您还需要为用户提供某种身份验证/登录系统。 (有关详细说明,请参见下文。)

资料来源:

  • consumable vs. non-consumable in app purchases
  • non-renewing subscriptions
  • 来自WWDC2017的更新:在Session #303中,App Store工程师Pete Hare在3:00解释说,可以将非续订的订阅视为“具有过期日期的消耗品”


  • 关于非续订订阅是否可消费的评论中已有一些辩论,因此,我想谈一谈。 “消耗品”意味着您可以多次食用它们。就像IP语音电话应用程序中的“通话30分钟”一样。另一方面,有些非消耗品只能购买一次。就像您在游戏应用中解锁所有关卡时一样。您只需购买一次,然后重置设备并重新下载该应用程序,便应该能够恢复购买的交易,因此您无需支付两次即可解锁所有级别。此外,如果您在这种情况下不点击“恢复”按钮,而只是再次购买“解锁所有级别”软件包,则该软件包有效,但不会再次向Apple收费。这就是为什么它被称为非消耗品。这是某种隐喻。苹果是“可食用的”。一旦消耗掉,它就消失了。椅子是非消耗性的。只要您不销毁它或将其赠与就可以拥有它。

    因此,将非续订订阅视为非消耗订阅是有意义的。如果您第二次购买,则不必支付两次,而应使用已经拥有的旧订阅。如果您重置设备,则重新下载该应用后,您应该能够恢复该订阅。恢复不是由Apple完成,而是由应用程序本身完成。

    我仍然认为非续订订阅是可消费的。我使用消耗品与非消耗品的简单定义:应用内购买是消耗品,当从StoreKit API的角度来看,同一用户可以在同一周内多次购买它时。 无法通过StoreKit恢复所有可消耗的IAP项。可以通过StoreKit恢复所有非消耗性IAP项。

    因此,开发人员本人负责恢复非续订订阅的应用内购买,对吗?不,对不起应用程序将如何还原非续订订阅的应用程序内购买?假设我有一台iPod,并且我订阅了1个月的Foo -radio收听服务。现在,我还想在iPad上收听Foo-Radio。如此,我在iPad上安装了Foo-App,然后点击“恢复”按钮。好吧...“还原”按钮应该做什么?如何知道我是否已经购买了“Foo”订阅,它仍然有效多长时间?答:不能。这种方法行不通。

    为了使非续订订阅生效,您必须先登录用户,才能将该订阅绑定(bind)到某个在线帐户。用户名/密码,Open-ID,通过Gmail,Facebook登录等都可以使用。然后,当用户购买n-r订阅时,您必须存储他在某个服务器上订阅的事实并将其链接到他在服务器上的帐户。您还必须防止用户尚未登录时购买n-r订阅。让我们继续上面的iPod/iPad示例。我在iPad上下载了该应用程序,并通过Facebook登录,瞧,我现在可以使用“Foo”订阅。无需“恢复”按钮,因为该应用程序应在登录时检查用户拥有哪些订阅。

    还会有一些其他问题要处理。 (1)例如,什么都不能阻止用户登录200个设备。在这里,问题不在于拥有200台设备的用户,而是一所拥有1000名学生的大学,其中180名学生共享同一帐户。 (2)如果服务器崩溃,某些人可能会丢失其订阅。问题(1)可能导致收入减少。问题(2)可能导致生气和不满意的顾客。

    关于ios - 非续订订阅是否需要还原按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23931586/

    相关文章:

    iphone - 适用于 iOS 4.3 的 xcode5

    ios - 应用内购买管理中不显示消耗品、非消耗品、订阅

    ios - 无法识别的选择器发送到应用内购买产品的实例错误

    ios - 始终在 iOS 上获取 In_app 的状态 SKPaymentTransactionStatePurchasing

    iphone - 如何从iOS中的另一个类调用方法?

    ios - 如何在 uitextfield iOS 中滚动文本

    ios - 表格 View ,如何将删除按钮放在最前面?

    ios - 在 iOS 中从 itunes connect 获取有效产品以进行应用内购买需要花费大量时间。我该如何处理?

    ios - iOS(Swift) 中未显示 Firebase Auth UI

    ios - 可以使用 SLButton 或 SLElement 关闭弹出窗口中显示的 UIActionSheet 吗?