几个月前,我在我的两个应用程序上实现了应用程序中的自动更新订阅。我存储了我的用户的旧收据,并在订阅期结束时从我的服务器联系Apple,以检查订阅是否仍然有效。我注意到我的一些用户正在从客户端代码本身自动更新。我的应用程序在进入时调用[[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver] ],当返回SKPaymentTransactionStatePurchased或SKPaymentTransactionStateRestored时,它会调用我的服务器来验证回执,并向我的用户提供订阅。
我已经尝试了相当长的一段时间来理解客户在续约期结束时收到的交易通知背后的逻辑。有人知道为什么只有一些用户收到通知,而其他用户需要服务器重新验证他们的收据吗?我试着想,也许这与addTransactionObserver的调用有关。也许这些用户在应用程序处于后台时杀死了它,并在订阅期结束后再次进入应用程序,这导致了addTransactionObserver:被解雇和通知到达。如果我能让我的所有用户都收到这个通知,我就不必再在订阅期结束时运行服务器调用了,因为它们会在需要的时候从客户端触发。
任何洞察力都肯定有助于理解这个难题。
谢谢
投资回报
发布于 2012-03-07 17:57:40
根据我的经验,你需要继续定期在你的服务器上验证收据。我和你一样注意到,这些新的收据发送到应用程序的情况并不一致。我认为,如果客户在新续订的某个时间范围内刚刚启动应用程序,苹果会将收据发送给客户。
https://stackoverflow.com/questions/9553896
复制相似问题