假设一位 iOS 用户购买了自动续订订阅。我知道 NSBundle.mainBundle().appStoreReceiptURL
显示了某种数字收据,我可以用它来验证购买和订阅的继续。
然后,在某个时间点之后,用户取消订阅。
问题:
当用户取消订阅时,
NSBundle.mainBundle().appStoreReceiptURL
是否会立即反射(reflect)取消情况?
我对此表示怀疑,因为 NSBundle.mainBundle()
用于提取应用程序本地存储的内容。如果用户通过操作系统的设置取消订阅,并且这将向 Apple 服务器发送某种类型的通知,那么 Apple 服务器应该以某种方式通知应用程序。
如果
NSBundle.mainBundle().appStoreReceiptURL
立即反射(reflect)取消。苹果是如何做到的?或者由我来实现一个协议(protocol)来获取取消信息?如果事实上我确实需要运行协议(protocol),那么其他应用程序每次启动该应用程序时都会运行它吗?
最佳答案
用户不会因此取消订阅。他们关闭了续订,因此订阅在当前周期结束后不会续订。如果自动续订仍处于启用状态,则新的应用内购买将添加到下一周期的收据中,但现在不会发生这种情况,因此您的应用程序应确定当前没有事件订阅并删除对适当的内容/功能。
Apple 可以应用户的请求取消订阅。在这种情况下,应用内购买收据项目的 cancellation_date
字段将具有一个值,您的应用应将其视为从未进行过购买。
您的应用程序应定期(至少在每次启动时)刷新应用程序收据并验证当前事件的订阅。
关于ios - iOS 应用内购买取消是否反射(reflect)在 NSBundle.mainBundle().appStoreReceiptURL 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42016897/