如何知道试用版在 iOS 应用中可用
Posted
技术标签:
【中文标题】如何知道试用版在 iOS 应用中可用【英文标题】:How to know that trial is available in iOS app 【发布时间】:2019-05-21 08:39:03 【问题描述】:我们的应用中有“免费试用”按钮。我想知道如何知道试用可用。
我对文档中的以下文字有点怀疑:
新客户和重新订阅的客户有资格为每个订阅组支付一次折扣价或免费试用。
什么是“重新订阅”?过去订阅的客户可以再次试用吗?
是否可以使用 StoreKit 来确定现在是否可以试用?
检查SKProduct
的introductoryPrice
属性是否正确:https://developer.apple.com/documentation/storekit/skproduct/2936878-introductoryprice?
我还想向后端询问当前用户的所有订阅历史记录,如果用户还没有试用,则显示“免费试用”。但正如我所说,我不确定“重新订阅”。
【问题讨论】:
【参考方案1】:检查试用资格的正确方法是验证以下 Apple 概述的收据文件。由于大多数人会认为这是一个非关键的验证,因此在客户端而不是在服务器之外进行以保存网络调用并没有太大的危害。假收据可能造成的最大危害是更改按钮的文本。
确定资格
要确定用户是否有资格享受介绍性价格,请检查 他们的收据:按照验证中的说明验证收据 使用 App Store 的收据。在收据中,检查 订阅试用期和订阅介绍价 所有应用内购买交易的期限。如果这些字段中的任何一个 对于给定的订阅为真,则用户没有资格获得 该订阅产品或任何其他产品的介绍价 在同一个订阅组内。您通常检查用户的 来自您的服务器的资格。最好确定资格 尽早——例如,如果可能的话,在应用程序首次启动时。
根据收据,您会发现新客户和回头客 有资格获得介绍价格或免费试用折扣,因为 如下:新订户始终符合条件。过期的订阅者 如果他们之前没有收到过介绍性,则有资格续订 给定产品(或同一产品中的任何产品)的价格 订阅组)。
回答您的具体问题:
过去订阅的客户可以再次试用吗?
没有。这是 Apple 对同一订阅组中的任何产品强制执行的。例如,如果用户开始试用“月度产品”,然后取消,然后再购买“年度产品”,他们将没有资格获得免费试用。
是否可以使用 StoreKit 确定试用可用 现在?检查 introductoryPrice 属性是否正确 SK产品?
没有。 SKProduct 将始终显示相同的介绍价。
【讨论】:
以上是关于如何知道试用版在 iOS 应用中可用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Sandbox 的应用购买中实现和测试 iOS 上的免费试用?如何通过 Apple 收据验证流程和试用信息?
iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?