private string getPPPaymentDataString(ShoppingCart _shc) { this.shc = _shc; StringBuilder paymentData = new StringBuilder(); //Add general PP variables //Cart Total: paymentData.Append("cmd=_cart"); paymentData.Append("\nupload=1"); paymentData.Append("\nbusiness=" + ConfigurationManager.AppSettings["PP_MerchantUsername"]); paymentData.Append("\nreturn=" + PP_returnURL); //return url after payment paymentData.Append("\ncancel_return=" + PP_cancelReturnURL); //cancel url in case payment is interrupted //paymentData.Append("\nnotify_url=" + PP_ipnNotifyURL); //link of IPN processing handler paymentData.Append("\ncert_id=" + ConfigurationManager.AppSettings["PP_CertID"]); //paymentData.Append("\ninvoice=invoice_1"); //optional - Passthrough variable you can use to identify your invoice number for this purchase. paymentData.Append("\ncharset=UTF-8"); //Shopping cart Data paymentData.Append("\ncurrency_code=" + ConfigurationManager.AppSettings["PP_Currency"]); paymentData.Append("\npaymentaction=sale"); //default is sale (allowed: authorization, order) paymentData.Append("\nhandling_cart=10"); // Shipping costs of the cart in Currency specified in the request paymentData.Append("\ntax_cart=" + Math.Round(shc.getTotalNetPrice()*(decimal)0.19,2).ToString()); // overwrites tax for individual items in Currency specified in the request //paymentData.Append("\ndiscount_amount_cart=0.20") //This variable overrides any individual itemdiscount_amount_x values, if present. //Prepopulating payer information paymentData.Append("\naddress_override=1"); //overwrite address in registered at paypal with the one provided at the webshop paymentData.Append("\naddress1=" + shc.shippingInfo.Address); //address-line 1 paymentData.Append("\naddress2="); //address-line 2 paymentData.Append("\ncity=" + shc.shippingInfo.City); // paymentData.Append("\ncountry=Nl"); paymentData.Append("\nemail=" + shc.shippingInfo.Email ); paymentData.Append("\nfirst_name=" + shc.shippingInfo.FirstName ); paymentData.Append("\nlast_name=" + shc.shippingInfo.LastName); paymentData.Append("\nlc=gb"); //language code for displaying the paypal page //paymentData.Append("\nnight_phone_a=" + shc.shippingInfo.Phone ); //paymentData.Append("\nnight_phone_b=263701066"); //paymentData.Append("\nnight_phone_c=night_phone_c") // paymentData.Append("\nstate=Gelderland") paymentData.Append("\nzip=" + shc.shippingInfo.PostCode); // paymentData.Append("\n=") int i = 0; foreach(ShoppingCart.Item item in shc.getItems()) { i++; //Shipping --> Added as an item!!!! paymentData.Append("\nitem_name_" + i.ToString() + "=" + item.EventName); //name of the product paymentData.Append("\nitem_number_" + i.ToString() + "=" + item.EventId.ToString() ); //product id paymentData.Append("\nquantity_" + i.ToString() + "=" + item.Quantity ); //nr of ordered pieces per item paymentData.Append("\namount_" + i.ToString() + "=" + Math.Round(item.EventPrice,2).ToString()); //price per piece //paymentData.Append("\ntax_1=0.20"); //paymentData.Append("\ndiscount_amount_1=0.20") // = NOT PER INDIVIDUAL ITEM! discount_amount_cart overwrites this if set //paymentData.Append("\ndiscount_rate_1=20"); // PER INDIVIDUAL ITEM! in %. discount_rate_cart overwrites this if set //paymentData.Append("\non0_1=color"); //maximum of 7 option field names per item (0-6) //paymentData.Append("\nos0_1=brown"); // maximum of 7 option selection names per item (0-6). MAX 64 chars //paymentData.Append("\non1_1=size"); //paymentData.Append("\nos1_1=xxl"); } ////Adding Items //paymentData.Append("\nitem_name_2=Item_2"); //paymentData.Append("\nitem_number_2=nr_2"); //paymentData.Append("\nquantity_2=2"); //paymentData.Append("\namount_2=2.00"); //paymentData.Append("\ntax_2=0.20"); ////paymentData.Append("\ndiscount_amount_2=0.20") //= discount_amount_cart overwrites this if set //paymentData.Append("\ndiscount_rate_2=10"); // PER INDIVIDUAL ITEM! in %. discount_rate_cart overwrites this if set return paymentData.ToString(); }