2013-03-28 84 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]; 
    } 
} 

这将解决你的问题......