-(void)paymentQueue:(SKPaymentQueue*)queueupdatedTransactions:(NSArray*)transactions{for(SKPaymentTransaction*transactionintransactions){switch(transaction.transactionState){caseSKPaymentTransactionStatePurchased://交易完成NSLog(@"transactionIdentifier = %@",transaction.transactionIdentifier);[selfcompleteTransaction:transaction];break;caseSKPaymentTransactionStateFailed://交易失败[selffailedTransaction:transaction];break;caseSKPaymentTransactionStateRestored://已经购买过该商品[selfrestoreTransaction:transaction];break;caseSKPaymentTransactionStatePurchasing://商品添加进列表NSLog(@"商品添加进列表");break;default:break;}}}-(void)completeTransaction:(SKPaymentTransaction*)transaction{// Your application should implement these two methods.NSString*productIdentifier=transaction.payment.productIdentifier;NSString*receipt=[transaction.transactionReceiptbase64EncodedString];if([productIdentifierlength]>0){// 向自己的服务器验证购买凭证}// Remove the transaction from the payment queue.[[SKPaymentQueuedefaultQueue]finishTransaction:transaction];}-(void)failedTransaction:(SKPaymentTransaction*)transaction{if(transaction.error.code!=SKErrorPaymentCancelled){NSLog(@"购买失败");}else{NSLog(@"用户取消交易");}[[SKPaymentQueuedefaultQueue]finishTransaction:transaction];}-(void)restoreTransaction:(SKPaymentTransaction*)transaction{// 对于已购商品,处理恢复购买的逻辑[[SKPaymentQueuedefaultQueue]finishTransaction:transaction];}