ios - 如何在应用程序启动时监控订阅状态(快速)

标签 ios swift in-app-purchase

我正在构建一个简单的约会应用程序,允许用户通过自动续订订阅成为高级用户。用户的“isPremium”属性值在创建帐户时为 false,而在通过应用内购买购买订阅后变为 true。但我必须再实现一件事才能完成这个高级功能,这就是我遇到问题的地方!

当应用启动时,如何监控应用当前用户的订阅状态?如果他们的订阅仍在进行中,我想将他们的“isPremium”属性保持为 true,但如果订阅已过期,则立即将其更改为 false。

我知道这里可能已经有人问过这个问题,但答复很复杂,而且大部分是在 Obj-C 中(我正在用 Swift 构建这个应用程序)。最好的举措是使用 Python 的后端服务器来验证收据吗?或者是否有更简单、更直接的方法从订阅产品对象或处理后端工作的 Cocoapod 获取到期日期?请帮忙!谢谢

最佳答案

最好的举措是像您提到的那样使用后端服务器。通过这种方式,您可以将收据文件存储在那里,并定期通过 Apple 刷新它,这样您就可以始终了解任何用户的订阅状态。

在设备上,您向服务器请求订阅状态并将其缓存(约 5 分钟)。每次用户恢复或打开您的应用程序时,请检查缓存是否已过时并刷新它。通过这种方式,您可以防止过期用户保留访问权限超过 5 分钟,同时在应用程序启动时保持快速和敏捷。

Or is there a simpler, more direct way of getting an expiration date from a subscription product object or a Cocoapod that handles this backend work? Please help!

如果您正在寻找开箱即用的解决方案,RevenueCat 是一个可靠的选择,它可以处理所有后端工作。他们也有免费套餐。 https://github.com/revenuecat/purchases-ios

关于ios - 如何在应用程序启动时监控订阅状态(快速),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57188757/

相关文章:

ios - didBeginContact() 在接触发生之前调用

ios - UISearchBar 文本字段高度不增加

ios - 如果没有互联网连接,加载本地文件;函数一次又一次地调用自己

ios - Objective C 到 Swift 的转换

ios - 使用 Flutter for iOS 检索订阅 IAP 产品列表

ios - 简单但不可能 - 从 view swift 调用基于点击事件的函数

iOS Auto Layout 在 CSS 中创建类似于响应式设计的东西

ios - CoreData 和中间体

SwiftyStoreKit。如何在不输入密码的情况下验证订阅?

java - Android应用内支付实物商品,价格信息存储在哪里?