在应用程序购买用户取消tx而应用程序在后台:TX州继续采购

我有一些奇怪的行为,用户取消在应用程序购买(沙箱环境),而应用程序在后台,用户尚未login到商店:

过程如下:

  • 用户未login/应用程序ID未在“设置”>“存储”中设置
  • 用户点击购买button。 这调用[[SKPaymentQueue defaultQueue] addPayment:payment];
  • 用户立即preses主页button(应用程序去背景)
  • Storekitpopup窗口出现要求确认购买。 用户取消
  • 应用程序再次激活,并期望收到- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions ,但没有。 德克萨斯州仍在进行国家采购。

如果testuser已经login到商店,则此过程是不同的。 在这种情况下,上述过程按预期工作。

另一点评论 :经过上述步骤,我实际上购买了另一个应用程序内的项目(包括login到应用程序)。 在此之后,我发送应用程序到后台并重新激活它,它将处理错误的取消交易。

结论:当应用程序处于后台并且未login到商店时,用户取消付款tx会导致延迟交付storekitcallback。 在用户实际login到appstore之后完成交付,并且通过重新激活应用程序触发PaymentQueue进程。

这种行为似乎是错误的,如果真的是这样的真实环境中 ,我可能会认为这是一个Storekit的错误。 有人经历过相同的行为,或可以指示某些东西,以防止在采购状态“悬挂”?

谢谢你,马库斯

我不相信在Store Kit中你可以依靠任何东西。 在“购买”button被按下之后,交易排队,而不是“等待期待”,只是继续关于您的业务。 当你被通知有交易(可能是明天)处理它们。 我相信在文档中对这个效果有一个评论 – 你的应用程序在启动时应该注册SK通知,并且应该在任何时候获得它们。 所以当涉及到Store Kit时,不要在应用程序中build立任何“状态”的意识。 处理交易到达。