アプリ内購入用に複数のボタンを作成し、それらを識別するために異なるタグを割り当てる必要があります。サンプルコードは次のとおりです。
- (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];
}
}
これはあなたの問題を解決します...