我有一个应用程序使用不续订订阅模式。当使用应用程序内购买测试帐户时,它工作得很好。然而,在苹果的生产服务器上,有时用户会因为某种原因而离开我的应用程序商店(有时是因为更新的计费信息,有时是为了回答安全问题)。这是在支付已经被添加到队列和苹果自己的支付流程之后。一旦用户点击警报视图选项进入应用程序商店,我的事务观察者就会得到一个具有SKPaymentTransactionStateFailed
状态的事务。这很好。然而,当用户更新他们的账单信息或确认他们的安全问题后,他们会被问到(仍然在应用程序之外)他们是否还想购买应用内购买。当它通过时,它们会被带回我的应用程序(它已经关闭了自己),事务观察者没有返回任何东西。只有在检索产品列表时,队列才会使用购买的产品进行更新。观察员登记之前的通知。
所以我的问题是:
如何处理我的应用程序外的采购(在应用程序商店应用程序中)?
如果在应用程序打开之前已经购买了东西(但还没有完成),在什么时候队列会被更新呢?我知道我应该让观察者在任何时候都去,但是我不想让用户购买两次,因为他们不知道他们已经购买了它。
发布于 2012-11-29 09:05:57
经过反复试验,我似乎已经解决了我的问题。
这使得我们认为,我并没有很快地初始化SKPaymentQueue
的事务观察者。它需要在application:didFinishLaunchingWithOptions:
方法中作为事务观察者进行初始化和添加,而不需要稍后添加。当事务进入时,您的事务观察者的paymentQueue:updatedTransactions
方法将在下一次应用程序活动时通过购买的事务被调用。值得注意的是,当您被带到app时,您的应用程序可能因某种原因关闭一次或不可能关闭一次,如果它最终关闭,则该方法将在应用程序下次打开时被调用。
https://stackoverflow.com/questions/13591392
复制相似问题