【问题标题】:StoreKit on iOS - autorenewable subscription - How to know whether it is a free trial or not?iOS 上的 StoreKit - 自动更新订阅 - 如何知道它是否是免费试用版?
【发布时间】:2013-05-30 13:29:10
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我想您可以存储此信息,您知道特定产品可在跟踪基础上使用,因此您可以在显示产品信息时向用户显示此信息。
  • 我猜你在暗示什么,@NuzhatZari,是我从我维护的服务器中检索有关试用期的信息,对吧?
  • 我正在尝试创建一个有免费试用期的产品,但我没有看到“提供免费试用”选项 - Apple 是否删除了此功能?

标签: iphone ios app-store-connect storekit skproduct


【解决方案1】:

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


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

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

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

【讨论】:

  • 感谢您的回答。关键是,在用户进行任何购买之前,我想向用户展示一个正在进行的试用期,并且第一个月是免费的。所以问题是:如何从 StoreKit 或 iTunesConnect 获取有关试用期的信息?我希望它是动态的
  • 哦,我明白了。我没明白你的意思。我什至不确定您是否可以在项目获得审核团队批准后更改试用期。无论如何,如果可以的话,显然目前无法获得该信息。但是,您可能会做的是通过解析产品描述(如果可以在产品可供购买后进行编辑……)来检查是否有一条字符串告诉您该项目是 7 天还是 30 天来解决此限制试用。
  • 我建议你向 Apple 提交一份雷达。如果他们还没有使用 iOS 7,他们可能会添加该功能。
  • 购买订阅前是否可以获取试用期信息(无SKPayment)?
【解决方案2】:

在客户端,您通常通过产品标识符来识别不同的产品和特性,因为 App Store 不提供某些信息,例如订阅期和免费试用期。

因此,如果您的产品 ID 是例如: com.domain.app.product_paid1month_free7days你在客户端拆分ID,知道付费订阅时长为1 month,产品免费试用期为7 days

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

【讨论】:

    【解决方案3】:

    【讨论】:

    • 介绍价是否包括免费试用?
    • 是的。 IntroductoryPrice 包含具有 3 个值的枚举 SKProductDiscount.PaymentMod:payAsYouGo、payUpFront 和 freeTrial
    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2016-12-16
    • 2019-07-25
    • 2023-03-31
    • 2018-01-12
    • 2021-03-16
    • 2023-03-24
    • 2014-11-18
    相关资源
    最近更新 更多