2012-03-04 93 views
1

我已经实施了两个月前在我的两个应用程序中的应用程序自动更新订阅。我存储了用户的旧收据,并在订阅期结束时与我的服务器联系,以检查订阅是否仍处于活动状态。 我注意到我的一些用户正在自动更新客户端代码本身。 我的应用程序在输入呼叫时[[SKPaymentQueue defaultQueue] addTransactionObserver:myObserver],当SKPaymentTransactionStatePurchasedSKPaymentTransactionStateRestored被返回时,它会调用我的服务器来验证收据并给我的用户订阅。在应用程序购买订阅自动更新

我一直在尝试了很长时间才明白客户在续订期结束时获得的交易通知背后的逻辑。有谁知道为什么只有一些用户得到通知,其余的则需要服务器重新验证他们的收据?我试着想,也许这跟调用addTransactionObserver有关。也许这些用户在应用程序处于后台时杀死了应用程序,并在订阅期结束后再次进入应用程序,导致addTransactionObserver:被触发并且通知到达。 如果我可以让所有用户获得此通知,那么在订阅期结束时,我不必再运行服务器调用,因为它们将在需要时从客户端触发。

任何洞察力肯定会帮助理解这个难题。

感谢

投资回报率

+0

我从未见过'SKPaymentTransactionStateRestored'在我的应用程序中的'auto-renewable'子目录中启动:( – 2013-11-25 08:47:23

回答

2

我的经验指出,你需要定期继续在服务器上验证收据。我注意到和你一样,这些新收据发送到应用程序不一致。我认为,如果Apple在新续约的某个时间范围内刚刚启动应用程序,则会将收据发送给客户。

相关问题