首页 文章

在App Purchase中,用户在后台取消tx:tx状态保持购买状态

提问于
浏览
6

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

过程如下:

  • 用户未登录/应用程序ID未在“设置”>“存储”中设置

  • 用户点击购买按钮 . 这叫 [[SKPaymentQueue defaultQueue] addPayment:payment];

  • 用户立即推出主页按钮(应用程序转到后台)
    出现

  • Storekit弹出窗口,要求确认购买 . 用户取消

  • 应用程序再次激活,并期望收到 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions ,但不会 . TX仍处于国家采购阶段 .

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

Another remark :完成上述步骤后,我实际上购买了另一个应用程序内项目(包括登录到appstore) . 在此之后,我将应用程序发送到后台并重新激活它,它将处理缺少的取消事务 .

Conclusion: 用户在应用程序处于后台且未登录到商店时取消付款tx会导致延迟交付storekit回调 . 在用户实际登录到appstore之后完成交付,并且通过重新激活应用程序来触发PaymentQueue进程 .

这种行为似乎是错误的,如果在实际环境中实际上是这样,我可能会认为这是一个Storekit错误 . 是否有人经历过相同的行为或者可以指示某些事情以防止购买状态出现问题?

谢谢,马库斯

1 回答

  • 2

    对于Store Kit,我不相信你可以指望任何事情 . 在按下“购买”按钮后,不要“等待”等待交易排队,而是继续关注您的业务 . 当您收到有关交易(可能是明天)的通知时,请处理它们 . 我相信在文档中对这种效果有一个评论 - 你的应用程序应该在它启动时注册SK通知,它应该随时可以获得它们 . 因此,当涉及Store Kit时,不要在应用程序中 Build 任何“状态”意识 . 只需在交易到达时处理 .

相关问题