2012-01-03 13 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メソッドを使用しましたか?古いスレッドを残して申し訳ありません。 –

+0

はい、私は、オブジェクトが割り当て解除されたときに、デフォルトの支払いキューのトランザクションオブザーバを削除します。しかし、トランザクションオブザーバオブジェクトは、デフォルトの支払いキューに一度追加されるだけです。 – NicTesla

0

finishTransaction:購入中にメソッドが動作しません。 (addPaymentの呼び出し:〜transactionStateは "SKPaymentTransactionStatePurchaced"または "SKPaymentTransactionStateFailed")

デフォルトのキュー内のトランザクションは、アプリケーションが終了しても削除されません。トランザクションオブザーバが存在しない場合、デフォルトキューはすべてのトランザクションを一時停止します。トランザクションオブザーバが存在する場合、デフォルトキューはすべてのトランザクションを再開します。これが「再販売」の理由です。

私はトランザクションをキャンセルする方法がないと思います。

購入時に、すべてのコントロールでuserInteractionEnabledをオフにしてください。

これは役に立ちますか?私のすてきな英語を申し訳ありません。

関連する問題