相关疑难解决方法(0)

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

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

过程如下:

  • 用户未登录/应用程序ID未在"设置">"存储"中设置
  • 用户点击购买按钮.这叫[[SKPaymentQueue defaultQueue] addPayment:payment];
  • 用户立即推出主页按钮(应用程序转到后台)
  • Storekit弹出窗口显示要求确认购买.用户取消
  • 应用程序再次激活,并期望收到- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions,但不会.TX仍处于国家采购阶段.

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

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

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

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

谢谢,马库斯

iphone storekit in-app-purchase ios

7
推荐指数
1
解决办法
1460
查看次数

SKPaymentTransactionObserver没有在app开关上获得回调

我设置了应用内购买,以便当用户点击"购买"按钮时,会出现"请稍候"视图,并将付款添加到付款队列中.这总是导致队列的观察者立即回调,说明交易进入"采购"状态.

我的问题发生在用户返回主屏幕,然后弹出确认购买对话框,然后取消.如果我在切换回应用程序之前在主屏幕上等待一段时间,应用程序永远不会获得有关事务切换状态或被删除的任何回调.如果我检查支付队列,我可以看到该交易仍然在队列中,仍然处于"采购"状态.在恢复应用程序后,有什么办法可以让它回调并从队列中删除它吗?

iphone cocoa-touch objective-c in-app-purchase

6
推荐指数
1
解决办法
1379
查看次数