iOS 应用内购买取消是否反映在 NSBundle.mainBundle().appStoreReceiptURL 上

Does iOS In-App-Purchase cancellation reflect on NSBundle.mainBundle().appStoreReceiptURL

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

然后在某个时候用户取消订阅。

问题

当用户取消订阅时,

  1. NSBundle.mainBundle().appStoreReceiptURL 是否立即反映取消?

我对此持怀疑态度,因为 NSBundle.mainBundle() 用于提取应用程序本地存储的内容。如果用户通过转到 OS' 设置取消订阅,这将向 Apple Server 发送某种类型的通知,那么 Apple Server 应该以某种方式通知应用程序。

  1. 如果不知何故 NSBundle.mainBundle().appStoreReceiptURL 立即反映取消。苹果是怎么做到的?还是由我实施协议来获取取消信息?

  2. 如果,事实上,我确实需要 运行 一个协议,其他应用程序每次启动时是否 运行 它?

用户没有取消订阅。他们关闭续订,因此订阅不会在当前期限结束时续订。如果自动续订仍处于启用状态,那么新的 in-app 购买将被添加到下一个周期的收据中,但现在不会发生这种情况,因此您的应用应确定当前没有活动订阅并删除适当地访问 content/features。

Apple 可以应用户的要求取消订阅。在这种情况下,in-app 购买收据项目的 cancellation_date 字段将具有一个值,您的应用应将其视为从未进行过购买。

您的应用应定期(至少在每次启动时)刷新申请收据并验证当前有效的订阅。