2013-03-28 85 views
0

我有一個應用程序在同一頁上的多個應用程序內容。當我購買一個顯示已經購買的內容時,即使我不購買所有這些內容。在一個應用程序中的多個應用程序內購買

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
    { 
    NSLog(@"[transactions count] : - %d ", [transactions count]); 
    for (SKPaymentTransaction *transaction in transactions) 
    { 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       [self failedTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
      default: 
       break; 
     } 
    } 

} 

回答

2

您需要爲應用程序購買創建多個按鈕,然後爲它們分配不同的標籤以標識它們。 這裏是示例代碼:

- (void)purchaseProUpgrade{ 
    SKPayment *payment; 
    if(btnTag ==0){ 
     payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseProUpgradeProductId1]; 
    } 
    else if(btnTag ==1){ 
     payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseProUpgradeProductId2]; 
    } 

    [[SKPaymentQueue defaultQueue] addPayment:payment]; 
} 

// saves a record of the transaction by storing the receipt to disk 

-(void)recordTransaction:(SKPaymentTransaction *)transaction{ 
    if(btnTag == 0){ 
      if ([transaction.payment.productIdentifier isEqualToString:kInAppPurchaseProUpgradeProductId1]){ 
     [[NSUserDefaults standardUserDefaults] setValue:transaction.transactionReceipt forKey:@"proUpgradeTransactionReceipt" ]; 
       [[NSUserDefaults standardUserDefaults] synchronize]; 
      } 
    } 
    else if(btnTag == 1){ 
     if ([transaction.payment.productIdentifier isEqualToString:kInAppPurchaseProUpgradeProductId2]) 
     { 
      // save the transaction receipt to disk 
      [[NSUserDefaults standardUserDefaults] setValue:transaction.transactionReceipt forKey:@"proUpgradeTransactionReceipt" ]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
     } 
    } 

} 

-(void)finishTransaction:(SKPaymentTransaction *)transaction wasSuccessful:(BOOL)wasSuccessful{ 

    [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
    NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:transaction, @"transaction" , nil]; 
    if (wasSuccessful) { 
     [[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerTransactionSucceededNotification object:self userInfo:userInfo]; 
     if(btnTag == 0){ 
       //write ur code 
     } 
     else if(btnTag == 1){ 
      //write ur code 
     } 
} 
    else 
    { 
     [[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerTransactionFailedNotification object:self userInfo:userInfo]; 
    } 
} 

這將解決你的問題......