【发布时间】: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