2017-02-02 3 views
0

Я работаю над SDK PayPal в iOS. Когда я передаю общее количество одного продукта с его общим количеством в SDK PayPal, он работает отлично. Но если у меня есть больше 1 продукта в корзине, и каждый продукт имеет разную сумму и количество, как передать общую сумму в PayPal. Помогите мне выбраться оттуда. Я рассчитываю и прохожу цену в формате валюты «ЕВРО». Заранее спасибо. Мой код: -Получить цену и общее количество разных продуктов и отправить в Paypal idk iOS

 - (IBAction)paypalButtonForSubmitData:(id)sender 
     { 
      NSDecimalNumber *subTotal;  
      NSArray *items;  
      self.resultText = nil;  
    // Here _arrayToCarryDataFromCartToPaymentPageInPaypal is array through which I am getting data from Plist.   
     for (int j=0; j<_arrayToCarryDataFromCartToPaymentPageInPaypal.count; j++) 
      { 
       NSMutableDictionary *paypalArrayDataInDictionary=[_arrayToCarryDataFromCartToPaymentPageInPaypal objectAtIndex:j];  
// priceDetail is giving me the price of any particular product. 
       NSString *priceDetail=[paypalArrayDataInDictionary objectForKey:@"PRICE"];  
       NSString *stringWithoutSpaces = [priceDetail stringByReplacingOccurrencesOfString:@"€" withString:@""]; 
       NSLog(@"Price=%@",stringWithoutSpaces); 
       PayPalItem *item1=[PayPalItem itemWithName:@"IPHONE" withQuantity:[[paypalArrayDataInDictionary objectForKey:@"STOCK"]intValue] withPrice:[NSDecimalNumber decimalNumberWithString:stringWithoutSpaces] withCurrency:@"EUR" withSku:@"SKU-iPhone6"];  
       items= @[item1];  
       subTotal=[PayPalItem totalPriceForItems:items];  
       NSDecimalNumber *shipping=[[NSDecimalNumber alloc]initWithString:@"0,00"]; 
       NSDecimalNumber *tax=[[NSDecimalNumber alloc]initWithString:@"0,00"];  

       PayPalPaymentDetails *paymentDetails=[PayPalPaymentDetails paymentDetailsWithSubtotal:subTotal withShipping:shipping withTax:tax];  
       NSDecimalNumber *total=[[subTotal decimalNumberByAdding:shipping]decimalNumberByAdding:tax];  

       PayPalPayment *payment=[[PayPalPayment alloc]init];  
       payment.amount=total;  
       [email protected]"EUR";  
       [email protected]"My Payment";  
       payment.items=items;  
       payment.intent = PayPalPaymentIntentSale;  
       payment.paymentDetails=paymentDetails;  
       NSLog(@"Payment=%@",payment);  

       if (!payment.processable) {  
        NSLog(@"Error");  
       } 
       // self.payPalConfig.acceptCreditCards=self.acceptCreditCards;  
       PayPalPaymentViewController *paymentViewController=[[PayPalPaymentViewController alloc]initWithPayment:payment configuration:self.payPalConfig delegate:self];  
       [self presentViewController:paymentViewController animated:true completion:nil];  
      }  
     }  

ответ

0

Пожалуйста, напишите код представления PaypalViewController из за петлю,

для этого вам нужно объявить ниже код,

PayPalPayment *payment=[[PayPalPayment alloc]init]; 

перед началом цикла.

Пожалуйста, попробуйте ниже отредактированного участка кода

- (IBAction)paypalButtonForSubmitData:(id)sender 
    { 
     NSDecimalNumber *subTotal;  
     NSArray *items;  
     self.resultText = nil;  
// Here _arrayToCarryDataFromCartToPaymentPageInPaypal is array through which I am getting data from Plist.   
    for (int j=0; j<_arrayToCarryDataFromCartToPaymentPageInPaypal.count; j++) 
     { 
      NSMutableDictionary *paypalArrayDataInDictionary=[_arrayToCarryDataFromCartToPaymentPageInPaypal objectAtIndex:j];  
      // priceDetail is giving me the price of any particular product. 
      NSString *priceDetail=[paypalArrayDataInDictionary objectForKey:@"PRICE"];  
      NSString *stringWithoutSpaces = [priceDetail stringByReplacingOccurrencesOfString:@"€" withString:@""]; 
      NSLog(@"Price=%@",stringWithoutSpaces); 
      PayPalItem *item1=[PayPalItem itemWithName:@"IPHONE" withQuantity:[[paypalArrayDataInDictionary objectForKey:@"STOCK"]intValue] withPrice:[NSDecimalNumber decimalNumberWithString:stringWithoutSpaces] withCurrency:@"EUR" withSku:@"SKU-iPhone6"];  
      items= @[item1];  
     } 
      subTotal=[PayPalItem totalPriceForItems:items];  
      NSDecimalNumber *shipping=[[NSDecimalNumber alloc]initWithString:@"0,00"]; 
      NSDecimalNumber *tax=[[NSDecimalNumber alloc]initWithString:@"0,00"];  

      PayPalPaymentDetails *paymentDetails=[PayPalPaymentDetails paymentDetailsWithSubtotal:subTotal withShipping:shipping withTax:tax];  
      NSDecimalNumber *total=[[subTotal decimalNumberByAdding:shipping]decimalNumberByAdding:tax];  

      PayPalPayment *payment=[[PayPalPayment alloc]init];  
      payment.amount=total;  
      [email protected]"EUR";  
      [email protected]"My Payment";  
      payment.items=items;  
      payment.intent = PayPalPaymentIntentSale;  
      payment.paymentDetails=paymentDetails;  
      NSLog(@"Payment=%@",payment);  

      if (!payment.processable) {  
       NSLog(@"Error");  
      } 
      // self.payPalConfig.acceptCreditCards=self.acceptCreditCards;  
      PayPalPaymentViewController *paymentViewController=[[PayPalPaymentViewController alloc]initWithPayment:payment configuration:self.payPalConfig delegate:self];  
      [self presentViewController:paymentViewController animated:true completion:nil];   
    }  
+0

Спасибо за ваш ответ. Но это не означает, что общая стоимость продукта доступна в корзине (предположим, 10 продуктов). Как это сделать? –

+0

@AbhishekSharma - Пожалуйста, проверьте пересмотренный код – Firoj

+0

так же, как и раньше. Не давая общей стоимости продуктов. –

 Смежные вопросы

  • Нет связанных вопросов^_^