iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?

Posted

技术标签:

【中文标题】iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?【英文标题】:iOS: How do I find out, if a user is still eligible for a free trial of an in-app purchase subscription?iOS:我如何确定用户是否仍有资格免费试用应用内购买订阅? 【发布时间】:2017-03-20 14:41:54 【问题描述】:

我们在 ios 应用中提供自动更新的应用内购买订阅。我们现在想为我们的订阅添加一个免费试用期,这已经很好了。 在我们应用的“商店视图”中,我们会显示产品信息以及“立即免费测试”按钮。

但是,如果用户订阅,享受了一个不错的免费月份,(可能需要支付更多费用)然后取消,她将能够再次看到我们的“商店视图”。现在,Apple 确保同一个 App Store 用户不会再次获得免费试用,这是一件好事。但这就是为什么我们也不想要求用户“立即免费测试”,而是在这种情况下要求“立即订阅”。

所以我的问题是:有没有办法告诉(在用户实际购买之前)他是否仍有资格获得免费试用?

如果用户之前已经订阅,我们可以只检查我们自己的用户数据库,但是当她再次注册我们的应用时,她仍然会看到“立即免费测试”,但不会能够,因为她的 App Store 帐户已经用完免费试用期。

【问题讨论】:

【参考方案1】:

两个选项可更改您在商店视图中显示的字符串。

1) 服务器调用以检查他们之前是否订阅过。你说你已经有了这个值,所以如果灵活的话,你可以将它添加到你的用户模式中,即hasSubscribed 然后你将在客户端的用户对象上拥有它,并且可以检查是否显示“测试”或“ subscribe" 或者只是在启动时将其拉过并将其存储在内存中以供您显示商店视图时使用。

2) 如果您在客户端上有收据,请检查之前是否购买过该特定订阅。

【讨论】:

感谢您的回答!我们已经实施了您的第一个提案,它应该适用于大多数情况。但是,仍然存在用户第二次注册我们的服务的极端情况(原因可能是欺诈或混淆),我们将显示“测试”,因为我们还不认识她,但她实际上不能再测试了,因为她的 Apple 帐户之前已经用于试用。但是,我会研究您的选项 2),也许这可以作为另一种安全机制。不过,如果有一个 StoreKit API 调用来简单地获取这些信息,那就太好了...... 收据响应中有一个字段“is_trial_period”:“false”,似乎与您要查找的内容相关。如果您在收据和用户之间有链接,只需查看 in_app 数组中的对象之一是否将此字段设置为 true。它可能没有记录,因此请谨慎行事。

以上是关于iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 成员资格 - 如何以编程方式确定用户是不是在角色中

如何知道试用版在 iOS 应用中可用

刷新iOS应用收据:如何确定用户是不是需要登录应用商店?

阿里出品的不限速网盘来了!开发者专属内测资格限量申请中

如何在我的 ios 应用程序中将免费功能转换为付费功能?

使用ios免费进行非消费类应用内购买