2012-01-11 16 views
1

iPhone App inアプリ購入:SKPaymentTransactionStateRestored:がコールされたのはいつですか?iPhoneアプリ:アプリ購入時

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for (SKPaymentTransaction *transaction in transactions) { 
     switch (transaction.transactionState) { 
     case SKPaymentTransactionStateRestored: 
     [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
     break; 
     } 
    } 
} 

アプリが購入されたことをAppleから確認する方法は、NSlogでその情報を印刷したいということです。

私はそのために何を書くべきですか?

+0

訴訟をご覧ください^ _^ – FreeAsInBeer

+0

こんにちは、プレアックはいかがですか? –

答えて

0

AppleがupdatedTransactionsの状態をSKPaymentTransactionStateRestoredまたはSKPaymentTransactionStatePurchasedと回答した場合にのみ、transactionsが正常に購入されることになります。

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

    for (SKPaymentTransaction * transaction in transactions) {   

     //process the transaction 
     switch (transaction.transactionState) { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       [self failedTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
       break; 
      default: 
       break; 
    } 

     } 

}

それはあなたがリンゴを使用して取引を終えたし、次の3つのケースを扱うことを意味して呼び出されます:

SKPaymentTransactionStatePurchased:それはあなたの製品があったことを意味する方法が

0

買った

SKPaymentTransactionStateFailed:製品を購入できませんでした。

SKPaymentTransactionStatePurchased:これはご質問です。あなたのSKPaymentTransactionObserverが生存している限り、トランザクションは永続的です。つまり、クライアントがあなたに商品を購入しようとしたが、商品の配送中に何か問題が起こった場合(サーバエラーまたは何か他のもの)、アプリケーションが再び始まると、購入を終了する。

私は情報が役立つことを願っています。