Apple in app Non-Renewing 订阅购买,强制要求登录?

Posted

技术标签:

【中文标题】Apple in app Non-Renewing 订阅购买,强制要求登录?【英文标题】:Apple inapp Non-Renewing subscription purchase, force-require login? 【发布时间】:2016-03-31 09:25:48 【问题描述】:

这是我的直截了当的问题: 是否允许我的 ios 应用程序强制用户登录我的自定义帐户管理系统,以便在他们想要购买非续订订阅时将他们链接到我的后端?

这是背景故事: 我有一个非续订订阅。对于大量用户,我可以看到 Apple 收据不包含有关此订阅的信息; in_app 数组为空。根据 API,这是正确的:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Products.html 消费产品或非续订订阅的应用内购买收据会在购买时添加到收据中。它会保存在收据中,直到您的应用完成该交易。在此之后,它会在下次更新收据时从收据中删除——例如,当用户进行另一次购买或您的应用显式刷新收据时

对于某些用户,我仍然可以在收据中看到购买,但让我们认为这是来自 Apple 的错误,并按照他们的 API 文档进行操作。 (更多关于为什么这是一个错误https://forums.developer.apple.com/thread/22345)

为了恢复用户的购买,我需要一些东西来识别他。我可以创建一个唯一的令牌,将其存储在 iCloud 钥匙串上,并在设备上使用它来检测属于该 Apple 帐户的购买,但由于我的应用程序支持帐户创建,我宁愿只使用该机制。否则,我同时使用两种不同的购买检测方法:iCloud 钥匙串令牌或用户帐户。

问题是,我不确定我是否可以强制用户在购买前创建一个帐户。这是 Apple 会拒绝应用程序提交的原因,并会显示“您的用户必须能够在不经过您冗长的帐户注册过程的情况下购买东西”之类的消息?

【问题讨论】:

非续订:意味着用户可以再次购买? 是的,先生。对于非续订订阅,由应用程序/后端来跟踪订阅有效期。 【参考方案1】:

来自苹果:

不可续订的订阅。不涉及的订阅 提供情节内容。示例包括访问数据库 历史照片或飞行地图集。这是你的应用程序 有责任在所有用户的 设备并让用户恢复购买。该产品类型是 当您的用户已经在您的服务器上拥有一个帐户时,通常使用该帐户 您可以在恢复内容时使用来识别它们。到期和 订阅的持续时间也留给您的应用程序(或您的 服务器)来实施和执行。 https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Products.html

因此,您的应用有责任检查用户是否已有效订阅或已过期,并让他们再次购买!

为此,您将要求用户首先创建帐户或登录应用程序,以便您可以通过这种方式跟踪他们的订阅。

【讨论】:

好的。我确保强迫用户这样做不会引起应用程序拒绝。谢谢 @Yasper 这只是您为您的用户所做的事情。您可以通过警报获得适当的消息,描述您为什么要强制他们登录以购买订阅。如果您的内容基于用户的电子邮件或登录名,Apple 不会有任何问题。您正在根据他们的身份(电子邮件或 ID)提供内容(订阅)。

以上是关于Apple in app Non-Renewing 订阅购买,强制要求登录?的主要内容,如果未能解决你的问题,请参考以下文章

在 Apple 的 App Store 之外分发时,我可以使用 In-App-Purchases 吗?

Flutter:如何在 in_app_purchase 中调用 Apple pay bottom sheet?

Sign in with Apple(苹果授权登陆)服务端验证

我被迫使用Apple In-App Purchase API

Python3 - 苹果ID登录App Sign in with Apple

Python3 - 苹果ID登录App Sign in with Apple