ios paypal与多个对象的简单付款

更新代码感谢ragnesh我可以做多个项目付款,但没有折扣,我需要在每个产品10%的折扣,任何人都可以帮忙吗?

- (void)simplePayment { [PayPal getPayPalInst].shippingEnabled = TRUE; [PayPal getPayPalInst].dynamicAmountUpdateEnabled = TRUE; [PayPal getPayPalInst].feePayer = FEEPAYER_EACHRECEIVER; PayPalPayment *payment = [[PayPalPayment alloc] init]; payment.recipient = @"email@example.com"; payment.paymentCurrency = @"USD"; payment.invoiceData = [[PayPalInvoiceData alloc] init]; payment.invoiceData.totalShipping = [NSDecimalNumber decimalNumberWithString:@"0"]; payment.invoiceData.totalTax = [NSDecimalNumber decimalNumberWithString:@"0.00"]; payment.invoiceData.invoiceItems = [NSMutableArray array]; NSMutableDictionary * dic = [[NSMutableDictionary alloc]init]; for (int i = 0; i < [db.array count]; i++) { myData =[db.array objectAtIndex:i]; [dic setValue:myData.itemName forKey:[NSString stringWithFormat:@"title%d",i]]; [dic setValue:[NSString stringWithFormat:@"%d",myData.itemPrice] forKey:[NSString stringWithFormat:@"price%d",i]]; [dic setValue:[NSString stringWithFormat:@"%d",myData.itemQuantity] forKey:[NSString stringWithFormat:@"quantity%d",i]]; } NSLog(@"%@",dic); for (int i=0; i<[db.array count]; i++) { PayPalInvoiceItem *item = [[PayPalInvoiceItem alloc] init]; [item setItemCount:[NSDecimalNumber decimalNumberWithString:[dic objectForKey:[NSString stringWithFormat:@"quantity%d",i]]]]; [item setItemPrice:[NSDecimalNumber decimalNumberWithString:[dic objectForKey:[NSString stringWithFormat:@"price%d",i]]]]; item.name = [dic objectForKey:[NSString stringWithFormat:@"title%d",i]]; [payment.invoiceData.invoiceItems addObject:item]; NSDecimalNumber *paypalItemQuantity = [NSDecimalNumber decimalNumberWithString:[dic objectForKey:[NSString stringWithFormat:@"quantity%d",i]]]; NSDecimalNumber *paypalItemPrice = [NSDecimalNumber decimalNumberWithString:[dic objectForKey:[NSString stringWithFormat:@"price%d",i]]]; payment.subTotal =[NSDecimalNumber decimalNumberWithString: [NSString stringWithFormat:@"%f",[payment.subTotal floatValue] +[paypalItemPrice floatValue] * [paypalItemQuantity floatValue] ]]; NSLog(@"%@",[dic objectForKey:[NSString stringWithFormat:@"price%d",i]]); NSLog(@"%@",[dic objectForKey:[NSString stringWithFormat:@"title%d",i]]); NSLog(@"%@",payment.subTotal); } [[PayPal getPayPalInst] checkoutWithPayment:payment]; } 

对于折扣我做了这样的事情:但它popup错误

 payment.subTotal =[NSDecimalNumber decimalNumberWithString: [NSString stringWithFormat:@"%f",([payment.subTotal floatValue]* [paypalItemQuantity floatValue]) -([paypalItemPrice floatValue] * [paypalItemQuantity floatValue] *0.1) ]]; 

按照此进行payPal集成

把这条线放在你的循环之外

 payment.invoiceData.invoiceItems = [NSMutableArray array]; 

编辑

 - (void)simplePayment { //dismiss any native keyboards //optional, set shippingEnabled to TRUE if you want to display shipping //options to the user, default: TRUE [PayPal getPayPalInst].shippingEnabled = TRUE; //optional, set dynamicAmountUpdateEnabled to TRUE if you want to compute //shipping and tax based on the user's address choice, default: FALSE [PayPal getPayPalInst].dynamicAmountUpdateEnabled = TRUE; //optional, choose who pays the fee, default: FEEPAYER_EACHRECEIVER [PayPal getPayPalInst].feePayer = FEEPAYER_EACHRECEIVER; //for a payment with a single recipient, use a PayPalPayment object NSMutableDictionary *dic=[[NSUserDefaults standardUserDefaults]valueForKey:@"drinkDetailDic"]; PayPalPayment *payment = [[PayPalPayment alloc] init]; payment.recipient = @"email@example.com"; payment.paymentCurrency = @"USD"; payment.description = [dic objectForKey:@"title"]; //invoiceData is a PayPalInvoiceData object which contains tax, shipping, and a list of PayPalInvoiceItem objects payment.invoiceData = [[PayPalInvoiceData alloc] init]; //shippping charge payment.invoiceData.totalShipping = [NSDecimalNumber decimalNumberWithString:@"0"]; payment.invoiceData.totalTax = [NSDecimalNumber decimalNumberWithString:@"0.00"]; payment.invoiceData.invoiceItems = [NSMutableArray array]; for (int i=0; i<2; i++) { PayPalInvoiceItem *item = [[PayPalInvoiceItem alloc] init]; item.totalPrice = payment.subTotal; [item setItemCount:[NSNumber numberWithInt:1]]; [item setItemPrice:[NSDecimalNumber decimalNumberWithString:[dic objectForKey:@"price"]]]; item.name = [dic objectForKey:@"title"]; [payment.invoiceData.invoiceItems addObject:item]; payment.subTotal =[NSDecimalNumber decimalNumberWithString: [NSString stringWithFormat:@"%f",[payment.subTotal floatValue] +[[dic objectForKey:@"price"] floatValue]]]; } [[PayPal getPayPalInst] checkoutWithPayment:payment]; } 

注意

如果您添加多个项目,则小计价格与所有项目价格的总和相同。