iOS上的StoreKit - autorenewable订阅 - 如何知道它是否是免费试用?

时间:2013-06-04 08:22:44

标签: iphone ios itunesconnect storekit skproduct

在iTunes Connect中,可以为自动续订订阅提供免费试用期。

App > Manage In App Purchases > Subscription Basic > 1 Month >  Offer a free trial?

如何在客户端获取此信息?正如我所见,SKProduct没有关于此的任何信息。由于我们正在进行营销活动,因此最终用户看不到有关产品的信息有试用期非常困惑。

当然可以从我维护的服务器获取此类信息,但是我们将有更新服务器和iTunes Connect的开销。所以我不接受这种答案,除非它连接到Apple的服务中检索试用期信息。

Screenshot from iTunes Connect

3 个答案:

答案 0 :(得分:9)

TLDR;这不可能。您需要自己管理这些信息。


当您处理SKPayment时,您会收到回执。您应该定期验证这些收据以进行订阅(例如,在下载新内容之前),因为用户可能已取消订阅。当用户确实取消订阅或订阅到期时,您在验证购买收据时会收到描述性错误。

此外,收据会为您提供所需的所有信息:对于给定的产品,您知道您授予的试用期。因此,在进行购买时,您可以将购买收据中提供的购买日期存储在模型对象或NSUserDefaults或购买数据旁边的钥匙串中。此时您知道试用期何时到期并验证订阅是否仍然有效。如果你不能,你可能想要禁用对内容的访问,直到你能够这样做。

有关购买收据和订阅的更多信息,请查看Apple的In-App Purchase Guide

答案 1 :(得分:2)

在客户端,您通常会根据其产品标识符识别不同的产品和特征,因为App Store未提供某些信息,如订阅期和免费试用期。

因此,如果您的产品ID是例如: com.domain.app.product_paid1month_free7days您在客户端分割了ID,并知道付费订阅的有效期为1 month,且产品的免费试用期为7 days

当然,一种方法是将产品ID传输到您自己的服务器,以获得其特性作为响应。这样,您可以连续维护产品列表,而无需更新二进制文件和版本。

答案 2 :(得分:1)