如何通过 iOS 在应用程序购买中使非消耗性产品可用于多次购买?

Posted

技术标签:

【中文标题】如何通过 iOS 在应用程序购买中使非消耗性产品可用于多次购买?【英文标题】:How to make a non-consumable product available for multiple purchases through iOS in app purchasing? 【发布时间】:2014-01-02 19:30:17 【问题描述】:

我有一个包含 ios 应用和网站的社交网络。为了便于说明,假设我是 Facebook,我想出售在您朋友的墙上发帖的能力。

您将购买此商品一次并且永远可以在该朋友的墙上随心所欲地发布,它不会过期。

您可以多次购买此商品,但每个朋友只能购买一次。

如果您在 iPhone 应用上购买了此功能,您也将在 Web 应用上拥有此功能。

如何使用 iOS 应用内购买来做到这一点?

这不是订阅,因为它不会过期或续订。

它不是消耗品,因为你没有用完它,它会跨设备同步,如果你重新安装应用程序会恢复它。

它不是非消耗品,因为您可以多次购买它(即用于多个友谊)。

我该怎么做?

【问题讨论】:

【参考方案1】:

这在 Apple 的应用内购买系统范围内似乎是不可能的。如果它是消耗品,您将无法恢复它。您需要手动创建新的应用内购买,然后获得 Apple 的批准才能添加它们,因此您必须为每个用户手动创建非消耗性应用内购买。那是不可行的。所以我认为你必须找到其他方法来解决这个问题。

您可以购买消耗品,添加发布到附加墙上的功能,根据您在应用中购买的位置,它会应用于正在查看的特定墙上。您可以将其与您的服务器同步,以查看允许该用户在哪些墙上发布信息,并且当用户在其他设备上登录时,他们也可以访问那里的相同墙,因此无需“恢复”购买,尤其是因为无论如何您都无法恢复消耗品购买。现在我不知道 Apple 是否会喜欢这种方法,因为根据您正在查看的墙,应用内购买本质上会做不同的事情(允许访问不同的墙),但这是我能看到的唯一方法它适用于 Apple 当前的应用内购买设置。

【讨论】:

如果您想避免任何可能发生的审批问题,您可以使用应用内货币添加一个间接层。用户通过应用内购买购买硬币,然后用户可以通过花费这些硬币来访问特定的墙。 没错,Apple 已经允许使用应用内货币的应用,并允许应用内购买来购买更多。所以这可能是你最好的途径,你甚至可以使用货币来获得其他特权。

以上是关于如何通过 iOS 在应用程序购买中使非消耗性产品可用于多次购买?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中使非数据库模型具有两个属性

如何在 iOS 中取消或退款已购买的消耗品应用内购买?

对 Mac 和 iOS 应用内购买使用相同的产品 ID

iOS 非消耗性购买是不是与使用帐户或设备绑定?

在应用内购买 iOS 中恢复交易

iOS 4.2后updateTransactions回调失败