【问题标题】:In App Purchase user cancels tx while app in background: tx state stays on purchasing在应用程序购买中,用户在后台应用程序时取消 tx:tx 状态保持在购买状态
【发布时间】:2011-06-10 19:21:07
【问题描述】:

当应用处于后台且用户尚未登录商店时,用户在应用购买(沙盒环境)中取消时有一些奇怪的行为:

流程如下:

  • 用户未登录/应用 ID 未在“设置”>“商店”中设置
  • 用户点击购买按钮。这调用[[SKPaymentQueue defaultQueue] addPayment:payment];
  • 用户立即按下主页按钮(应用程序进入后台)
  • Storekit 弹出窗口要求确认购买。用户取消
  • 应用程序再次激活,并希望收到- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions,但没有。 TX 仍处于购买状态。

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

再备注:经过以上步骤,我实际上又购买了一个应用内商品(包括登录应用商店)。在此之后,我将应用程序发送到后台并重新激活它,它将处理以前的 missing 取消事务。

结论: 用户在应用程序处于后台且未登录商店时取消支付交易会导致 storekit 回调延迟交付。在用户实际登录到应用商店并通过重新激活应用触发 PaymentQueue 流程后完成交付。

这种行为似乎是错误的,如果在真实环境中确实如此,我可能会认为这是一个 Storekit 错误。是否有人经历过相同的行为,或者可以指出一些事情来防止 tx 在购买状态下“挂起”?

谢谢, 马库斯

【问题讨论】:

  • 有同样的问题。你解决了吗?
  • @nico 不,我考虑过提交错误报告,但还没有这样做。我也不确定,这是否仅发生在沙盒环境中。
  • 我为此问题提交了一个错误。
  • 你所说的“沙盒”是指模拟的吗?
  • @HeathBorders 雷达很久以前就被“尝试新版本”关闭了,我什至没有号码。此外,苹果现在已经转移到错误报告的反馈助手。

标签: iphone ios in-app-purchase storekit


【解决方案1】:

我不相信您可以在 Store Kit 中指望任何东西。在按下“购买”按钮后,与其“期待地”等待交易排队,不如继续你的业务。当您被通知有交易(可能是明天)处理它们时。我相信文档中有关于这种效果的评论——你的应用程序应该在启动时注册 SK 通知,并且它应该希望随时得到它们。因此,当涉及到 Store Kit 时,不要在您的应用程序中建立任何“状态”意识。只需在交易到达时对其进行处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2011-09-06
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多