一次购买多种消耗品

我允许用户一次购买多个(相同types的)耗材。 我已经实现了以下代码:

- (void)purchaseMyProduct:(NSArray *) products { if ([SKPaymentQueue canMakePayments]) { for(SKProduct *product in products) { SKPayment *payment = [SKPayment paymentWithProduct:product]; [[SKPaymentQueue defaultQueue] addPayment:payment]; } [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; } else { UIAlertView *alertView = [[UIAlertView alloc]initWithTitle: @"Purchases are disabled in your device" message:nil delegate: self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; [alertView show]; } 

}

 -(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { UIAlertView *alertView ; for (SKPaymentTransaction *transaction in transactions) { switch (transaction.transactionState) { case SKPaymentTransactionStatePurchasing: NSLog(@"Purchasing"); break; case SKPaymentTransactionStatePurchased: [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; [self break; default: break; } } 

}

但是问题在于,对于每个单一的消耗品条目,显示单独的提示以要求用户确认购买。

是否有可能在IAP中一次购买多种相同types的消耗品,并向用户提供一个提示?

我曾经想过的一个逻辑就是在多个消费品的商店中创造独立的产品,例如一个产品为两个,另一个为三个消费品。

请帮助。

谢谢,

如果它们属于同一types,则应使用数量字段。 检查SKPayment类的参考。 数量的最大值是10。

要创build数量大于1的SKPayment对象,请创build一个SKMutablePayment对象,调整其数量属性,然后将其添加到支付队列中。

来自文档的示例:

 SKMutablePayment *myPayment = [SKMutablePayment paymentWithProduct: myProduct]; myPayment.quantity = 2; [[SKPaymentQueue defaultQueue] addPayment:myPayment];