ios - 如何知道试用版在 iOS 应用中可用
问题描述
我们的应用程序中有“免费试用”按钮。我想知道如何知道试用可用。
我对文档中的以下文本有点怀疑:
新的和重新订阅的客户有资格为每个订阅组支付一次折扣价或免费试用。
什么是“重新订阅”?过去订阅的客户可以再次试用吗?
是否可以使用 StoreKit 确定试用版现在可用?
introductoryPrice
检查以下属性是否正确SKProduct
:https ://developer.apple.com/documentation/storekit/skproduct/2936878-introductoryprice ?
我还想向后端询问当前用户的所有订阅历史记录,如果用户还没有试用,则显示“免费试用”。但正如我所说,我不确定“重新订阅”。
解决方案
检查试用资格的正确方法是验证以下 Apple 概述的收据文件。由于大多数人会认为这是一个非关键的验证,因此在客户端而不是在服务器之外进行以保存网络调用并没有太大的危害。假收据可能造成的最大危害是更改按钮的文本。
确定资格
要确定用户是否有资格获得推介价格,请检查他们的收据:按照使用 App Store 验证收据中的说明验证收据。在收据中,检查所有应用内购买交易的订阅试用期和订阅介绍价格期的值。如果给定订阅的这些字段中的任何一个为真,则用户没有资格获得该订阅产品或同一订阅组中的任何其他产品的介绍性价格。您通常会从您的服务器检查用户的资格。最好尽早确定资格 - 例如,如果可能,在首次启动应用程序时。
根据收据,您会发现新客户和老客户有资格享受以下介绍价格或免费试用折扣: 新订户始终有资格。如果之前未收到给定产品(或同一订阅组中的任何产品)的介绍价格,则续订的已过期订阅者有资格。
要回答您的具体问题:
过去订阅的客户可以再次试用吗?
不可以。Apple 会针对同一订阅组中的任何产品强制执行此操作。例如,如果用户开始试用“月度产品”,然后取消,然后再购买“年度产品”,他们将没有资格获得免费试用。
是否可以使用 StoreKit 确定试用版现在可用?检查 SKProduct 的 introductoryPrice 属性是否正确?
不会。SKProduct 将始终显示相同的介绍价。
推荐阅读
- python - TypeError: Python 'method' 无法转换为 MySQL 类型
- aws-elasticsearch - 如何下载 PPL 命令的输出?
- xcode - iOS模拟器上的控制中心空白-没有飞行模式按钮
- google-apps-script - 当每行中的一个单元格包含一个值时,我可以在行中添加多个复选框吗?
- r - Shiny 应用程序无法访问 RStudio Connect Server 上的 SQLite db:“数据库已锁定”
- elasticsearch - 对象嵌套范围聚合的弹性搜索数组
- python - Python 多处理队列 NotImplementedError macOS
- amazon-s3 - 调用 CopyObject 操作时发生错误 (AccessDenied):访问被拒绝
- java - Spring boot JAR 作为 Windows 服务和外部 application.yml
- django - 我无法在 /events/ 错误处解决 NoReverseMatch