2012-01-03 75 views
0

我有問題,即使我撥打 [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 付款將不會從默認隊列中刪除。SKPayment不會從默認支付隊列中刪除

我在默認支付隊列上安裝了paymentobserver。當我的付款觀察者正在連接到默認支付隊列,它調用

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

觀測方法,並迫使該交易將「回購」(沒有恢復!!)。

誰能幫助?

回答

1

好的,我明白了。

這很漂亮,但默認支付隊列不是支付隊列,我想從中「完成」購買。

那麼是什麼讓我的是,在方法:

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

交易已購買後,我從隊列中刪除的委託方法給出的交易。

這樣做!也許隊列仍然來自我沒有完成的購買。

也許它可以幫助別人!

+0

您是否在這種情況下使用removeTransactionObserver方法?抱歉提出一箇舊線程。 – 2013-04-26 09:40:27

+0

是的,當對象解除分配時,我刪除默認支付隊列的事務觀察者。但事務觀察者對象只有一次被添加到默認支付隊列中。 – NicTesla 2013-05-13 13:56:28

0

finishTransaction:方法在購買過程中不起作用。 (調用addPayment:〜transactionState將爲「SKPaymentTransactionStatePurchaced」或「SKPaymentTransactionStateFailed」)

即使應用程序終止,默認隊列中的交易也不會被查看。當沒有事務觀察者時,默認隊列會暫停所有事務。當有事務觀察者時,默認隊列恢復所有事務。這就是爲什麼「回購」的原因。

我認爲沒有辦法取消交易。

在購買過程中,您可以在所有控件中關閉userInteractionEnabled。

這對你有幫助嗎?對不起,我的英語不錯。