【问题标题】:What does "restore purchases" in In-App purchases mean?应用内购买中的“恢复购买”是什么意思?
【发布时间】:2011-12-05 23:47:00
【问题描述】:

我真的不明白这个想法。 我必须为用户提供恢复按钮吗? 这个方法应该调用什么方法? 恢复会做什么?

【问题讨论】:

  • 基本上,如果您删除应用程序,转移到新手机,无论如何,您购买的内容将不再在该设备上可用。 Restore Purchases 会询问 iTunes 您为哪些可用的应用内购买付费。您应该提供一个恢复按钮,我不确定是否需要,但绝对建议这样做。您应该阅读有关应用内购买的文档,以更清楚地了解购买/恢复交易的哪一部分是您的责任,哪一部分是 Apple 的。
  • 我不是 iPhone 专家,但从使用经验来看,如果您有应用内购买,此方法应该恢复用户从/在您的应用中购买的所有内容,当然您会使用它们是用于识别的苹果 ID/帐户。

标签: iphone in-app-purchase restore


【解决方案1】:

您将收到来自 Apple 的拒绝消息,因为您注册的 inApp 购买产品可能属于非续订订阅和消耗品类别。这些类型的产品不会自动更新。您需要在您的应用程序中有明确的恢复按钮。

对于其他类型的产品,它会自动恢复它。

请阅读以下文字,这将清除您对此的概念:

一旦交易被处理并从队列中移除,您的 应用程序通常再也不会看到它。但是,如果您的应用程序 支持必须可恢复的产品类型,您必须包括 允许用户恢复这些购买的界面。这个界面 允许用户将产品添加到其他设备,或者,如果原始设备 设备被擦除,以恢复原始设备上的事务。

Store Kit 提供内置功能来恢复交易 非消耗性产品、自动更新订阅和免费 订阅。要恢复事务,您的应用程序调用 支付队列的 restoreCompletedTransactions 方法。支付队列 向 App Store 发送请求以恢复交易。在 返回时,App Store 会为每个 之前完成的交易。还原事务 对象的 originalTransaction 属性保存原始的副本 交易。您的应用程序通过以下方式处理还原事务 检索原始交易并使用它来解锁 购买的内容。 Store Kit 恢复之前的所有内容后 交易,它通过调用他们的支付队列观察者通知他们 paymentQueueRestoreCompletedTransactionsFinished: 方法。

如果用户尝试购买可恢复的产品(而不是 使用您实现的恢复接口),应用程序接收 该项目的常规交易,而不是恢复交易。 但是,不会再次向用户收取该产品的费用。您的 应用程序应以相同的方式对待这些交易 原始交易。非续订订阅和消耗品 Store Kit 不会自动恢复产品。不更新 但是,订阅必须是可恢复的。要恢复这些产品, 您必须在自己的服务器上记录交易 购买并提供您自己的机制来恢复这些交易 到用户的设备

【讨论】:

  • 您知道在以下情况下不需要恢复时会发生什么情况吗:用户能够在他的设备上下载应用程序,并且该应用程序可以通过使用不同的凭据登录来使用多个用户。如果用户 Bill 使用他的凭据登录并购买仅为他的凭据购买的应用程序。如果后者乔使用他的凭据登录,他应该再次购买它。如果比尔登录任何其他设备,他应该能够享受完整的应用程序。应用程序功能取决于服务器返回的数据,而不是来自其他资产的数据。谢谢!
  • @zvjerka24 - 是的,我想要在我的应用程序中完全一样,那么我必须使用什么 IAP?
【解决方案2】:

您通常使用此代码恢复购买:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

它将在观察者上重新调用 -paymentQueue:updatedTransactions 以获取购买的物品。这对于删除后重新安装应用程序或将其安装在其他设备上的用户非常有用。

并非所有类型的应用内购买都可以恢复。

【讨论】:

  • 不是有类似App rebuy的东西吗?不是提示类似“您已购买,可以免费下载”吗?我没有这样的经历。
  • 不,这必须由应用程序开发人员实现才能为用户提供这种体验 - 但它相当简单(一行代码)。
  • 当用户没有进行任何购买时,我无法捕获任何委托方法,然后点击恢复。 Store 得到处理,但在这种情况下不会调用任何方法(只有 paymentQueueRestoreCompletedTransactionsFinished:,但它也会在成功恢复时调用)。所以现在怎么办?我会为此设置一个问题。
  • 如果我自己的服务器通过在运行时检查付费限制来管理会怎样。因此,如果有人删除并安装应用程序,他/她仍将获得所有付费功能。(那时我真的需要这个吗?)
【解决方案3】:

是否作为可选功能。

如果您在用户尝试购买非消耗品时不提供,AppStore 将恢复旧交易。但您的应用会认为这是新事务。

如果您将提供恢复机制,那么您的采购经理将看到恢复的交易。

如果应用应该区分这些选项,那么您应该提供恢复以前购买的产品的功能。

【讨论】:

  • 这不是应用商店应该处理的吗?
  • AppStore 按照我的帖子中所说的那样处理这个问题。应用只会看到不同类型的交易。
  • 不是有类似App rebuy的东西吗?不是提示类似“您已购买,可以免费下载”吗?我没有这样的经历。
  • 是的,如果产品是non-consumable并且已经被该帐户购买,它会提示这样的消息。
  • 这不是可选的。 Apple 要求您这样做。我的应用被拒绝,因为我没有让用户恢复他们的 IAP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多