ios - iOS 应用内购买取消是否反射(reflect)在 NSBundle.mainBundle().appStoreReceiptURL 上

标签 ios in-app-purchase storekit auto-renewing receipt-validation

假设一位 iOS 用户购买了自动续订订阅。我知道 NSBundle.mainBundle().appStoreReceiptURL 显示了某种数字收据,我可以用它来验证购买和订阅的继续。

然后,在某个时间点之后,用户取消订阅。

问题:

当用户取消订阅时,

  1. 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/

    相关文章:

    iphone - 在 FTP 上上传多个文件

    ios - Swift:从金额文本中获取货币符号

    ios - 隐藏 textView 光标

    iOS 应用程序 - 每台设备的许可证

    ios - SceneKit Material 中充满了随机图案,为什么?

    ios - 在应用内购买后删除 View Controller 上的所有广告

    iOS In App Purchase 功能显示 : "An App ID with Identifier ' com. 示例。App' 不可用”

    iOS 应用内购买。如何查看购买是否已经购买?

    ios - 在 Storekit 的应用程序启动时添加事务队列观察器的最佳实践

    ios - 可以在 iOS 上进行订阅免费试用的 A/B 测试吗?