2

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

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

问题

当用户取消订阅时,

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

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

  1. 如果以某种方式NSBundle.mainBundle().appStoreReceiptURL立即反映取消。苹果是如何做到的?还是由我来实施协议以获取取消信息?

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

4

1 回答 1

2

用户不会这样取消订阅。他们关闭续订,因此订阅将不会在当前期限结束时续订。如果自动续订仍然启用,则新的应用内购买将添加到下一个期间的收据中,但现在不会发生这种情况,因此您的应用应确定当前没有有效订阅并删除对适当的内容/功能。

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

您的应用程序应定期(并且至少在每次启动时)刷新应用程序收据并验证当前活动的订阅。

于 2017-02-03T05:42:29.593 回答