SKPayment不会从默认支付队列中删除

时间:2012-01-03 10:32:37

标签: ios storekit

我有问题,即使我打电话 [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 付款不会从默认队列中删除。

我在默认付款队列中安装了payobserver。当我的付款观察员连接到默认付款队列时,它会调用

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

观察者方法并强制交易“重新购买”(未恢复!!)。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

好的,我明白了。

这是非常好的,但默认的支付队列不是支付队列,我想从中“完成”购买。

所以帮助我的方法是:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

在购买交易后,我从委托方法中给出的队列中删除了该事务。

那就做到了!也许队列仍然来自我没有完成的购买。

也许它有助于某人!!

答案 1 :(得分:0)

finishTransaction:方法在购买期间不起作用。 (调用addPayment:~transportState将是“SKPaymentTransactionStatePurchaced”或“SKPaymentTransactionStateFailed”)

即使应用程序终止,也不会对默认队列中的事务进行处理。如果没有事务观察器,则默认队列会暂停所有事务。当存在事务观察器时,默认队列将恢复所有事务。这就是“重新购买”的原因。

我认为没有办法取消交易。

在购买过程中,您需要在所有控件中关闭userInteractionEnabled。

这对你有帮助吗?对不起我的英语。