2012-01-19 5 views
1

私は購入を処理しているが、Appleのサーバーが停止しているかどうかを検出し、Appleのサーバーが利用できないという警告をポップアップ表示したい。簡単な音ですね。私が進めている問題は、Appleのサーバーが停止しているかどうかを知る方法がないか、またはユーザーがAppleの「App内購入確認」警告表示に座っているかどうかを確かめることができないということです。これは、基本的には、このデリゲートメソッドで起こる:購入処理中にApp Storeが利用できないときの検出

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

は、取引の配列のためのトランザクション状態を確認し、購入が開始されたときに、デリゲートはSKPaymentTransactionStatePurchasingに呼び出され、購入が完了した後にSKPaymentTransactionStatePurchased。このアラートダイアログがいつポップアップし、ユーザーが確認したかについての指標はないため、これらのケースでは「使用不可能な」メッセージを確実にポップアップすることはできません。

何か不足していますか、これは間違いですか?この問題を他の人がどのように扱っていますか

答えて

2

メソッドが呼び出され、次のトランザクションが失敗した場合:

- (void)failedTransaction:(SKPaymentTransaction *)transaction 
    { 
     NSLog(@"The error description is:%@",[transaction.error description]); 
     if (transaction.error.code != SKErrorUnknown) 
     { 
      // error! 
      //Your time to take over 
     } 

    } 

あなたはhttp://developer.apple.com/library/mac/#documentation/StoreKit/Reference/StoreKitTypes/Reference/reference.html

+0

なぜSKErrorUnknownをチェックするのですか?この場合でも私はまだ行動を起こしたくないのですか? –

+0

あなたはリンクを私が投稿した参照してください。ユーザーがiTunesのポップアップでキャンセルされたクリックされたケースがあります,,クリックして私が購入したくない...あなたがポップアップ..を取得する必要がありますiTunes? – Shubhank

1

failedTransactionをチェックする必要がありますので、様々な理由で呼び出されますすることができます。ストアに固有のものを探している場合は、これが私がすべてのストアキットのコールバックでやっていることです。

ストアキットによって返されたエラーコードでルック

if ([[error domain] isEqualToString:SKErrorDomain] 
{ 
    if ([[[[error userInfo] objectForKey:NSLocalizedDescriptionKey] lowercaseString] isEqualToString:@"cannot connect to itunes store"]) 
    { 
     // Show custome message to user that store is not available 
    } 
} 

あなただけの書式設定のため申し訳ありません確認してください--->

[error code] == 0 

作るために、場合で追加することができますもう一つの条件があります私はそれを正しく得られない。 :)

関連する問題