2

我有一个使用非续订订阅模式的应用程序。使用应用内购买测试帐户时效果很好。但是,在 Apple 的生产服务器上,有时用户会出于某种原因从我的应用程序转移到应用程序商店(有时是因为更新了计费信息,有时是为了回答安全问题)。这是在付款被添加到队列和 Apple 自己的付款流程中之后。一旦用户点击警报视图选项进入应用商店,我的交易观察者就会获得与SKPaymentTransactionStateFailed状态。没关系。但是,在用户更新他们的账单信息或确认他们的安全问题后,系统会询问他们(仍在应用之外)是否仍想购买应用内购买。完成后,它们将被带回我的应用程序(它已自行关闭),并且事务观察者没有返回任何内容。仅当检索到产品列表时,队列才会更新为购买的产品。观察者注册通知之前

所以我的问题是:

如何处理在我的应用之外(在应用商店应用中)进行的购买?

如果在应用程序打开之前进行了购买(但未完成),队列会在什么时候更新?我知道我应该让观察者一直走,但我想避免让用户购买该物品两次,而不知道他们已经购买了它。

4

1 回答 1

0

通过一些试验和错误,我似乎已经解决了我的问题

事实证明,我没有SKPaymentQueue足够快地初始化我的事务观察器。它需要在方法中被初始化并添加为事务观察者application:didFinishLaunchingWithOptions:,而不是稍后。至于交易何时到来,paymentQueue:updatedTransactions下次您的应用程序处于活动状态时,您的交易观察者的方法将通过购买的交易被调用。重要的是要注意,当您被带到 App Store 时,您的应用程序可能会或可能不会出于某种原因关闭一次,如果它最终关闭,则该方法将在下次打开应用程序时被调用。

于 2012-11-29T17:05:57.913 回答