【问题标题】:Get price and total of different product and send to Paypal idk iOS获取不同产品的价格和总数并发送到 Paypal idk iOS
【发布时间】:2017-06-19 01:59:42
【问题描述】:

我正在开发 iOS 中的 PayPal SDK。当我将单个产品的总量及其总量传递给 payPal SDK 时,它可以完美运行。但是,如果我在购物车中有超过 1 件产品,并且每种产品的数量和数量都不同,如何将总金额传递给 PayPal。帮助我摆脱它。我正在以“欧元”货币格式计算和传递价格。提前致谢。我的代码是:-

        - (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;    
                payment.currencyCode=@"EUR";    
                payment.shortDescription=@"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];    
            }    
        }    

【问题讨论】:

    标签: ios paypal


    【解决方案1】:

    请在for循环外写出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;    
                payment.currencyCode=@"EUR";    
                payment.shortDescription=@"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];        
        }    
    

    【讨论】:

    • 感谢您的回复。但它没有给出购物车中可用产品的总价格(假设 10 个产品)。如何做到这一点?
    • 和以前一样。没有给出产品的总价格。
    • 成功完成。实际上我没有在数组中添加对象。不过感谢您的回复。
    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2019-02-28
    • 2015-06-23
    • 2021-01-08
    • 1970-01-01
    相关资源
    最近更新 更多