private void CreatePayPalOrder() { OrderManager orderMgr = new OrderManager(); CSBusiness.OrderManagement.Order orderData = null; NameValueCollection nvcPostData = Request.Form; NameValueCollection nvcQueryString = null; ArrayList skuList = new ArrayList(); Hashtable htRequestInfo = new Hashtable(); Hashtable htResponseInfo = new Hashtable(); Address billingAddress = new Address(); Customer CustData = new Customer();//Set Customer Information List <StateProvince> states = StateManager.GetAllStates(0); List <Country> countries = CountryManager.GetAllCountry(); string strEmail = ""; int intOrderid = 0; string strPayKey = ""; string strTransactionId = ""; if (nvcPostData["ipn_notification_url"] != null) { nvcQueryString = HttpUtility.ParseQueryString(nvcPostData["ipn_notification_url"].ToString().Split('?')[1]); if (nvcQueryString["orderid"] != null) { intOrderid = Convert.ToInt32(nvcQueryString["orderid"].ToString()); } } else { intOrderid = Convert.ToInt32(Request["orderid"].ToString()); } if (nvcPostData["pay_key"] != null) { strPayKey = nvcPostData["pay_key"].ToString(); } if (nvcPostData["transaction[0].id"] != null) { strTransactionId = nvcPostData["transaction[0].id"].ToString(); } if (nvcPostData["sender_email"] != null) { strTransactionId = nvcPostData["sender_email"].ToString(); } if (intOrderid > 0) { orderData = orderMgr.GetOrderDetails(intOrderid, true); //Getting Data from Paypal htRequestInfo.Add("ActionType", "GetShippingAddresses"); htRequestInfo.Add("PayKey", strPayKey); if (OrderHelper.AuthorizeOrderWithPayPalAdaptive(orderData.OrderId, htRequestInfo, out htResponseInfo)) { if (htResponseInfo.ContainsKey("selectedAddress.addresseeName")) { billingAddress.FirstName = CommonHelper.fixquotesAccents(HttpUtility.UrlDecode(htResponseInfo["selectedAddress.addresseeName"].ToString())); billingAddress.LastName = ""; } if (htResponseInfo.ContainsKey("selectedAddress.baseAddress.line1")) { billingAddress.Address1 = CommonHelper.fixquotesAccents(HttpUtility.UrlDecode(htResponseInfo["selectedAddress.baseAddress.line1"].ToString())); billingAddress.Address2 = ""; } if (htResponseInfo.ContainsKey("selectedAddress.baseAddress.postalCode")) { billingAddress.ZipPostalCode = CommonHelper.fixquotesAccents(HttpUtility.UrlDecode(htResponseInfo["selectedAddress.baseAddress.postalCode"].ToString())); } if (htResponseInfo.ContainsKey("selectedAddress.baseAddress.city")) { billingAddress.City = CommonHelper.fixquotesAccents(HttpUtility.UrlDecode(htResponseInfo["selectedAddress.baseAddress.city"].ToString())); } if (htResponseInfo.ContainsKey("selectedAddress.baseAddress.countryCode")) { billingAddress.CountryId = countries.Find(x => x.Code.Trim() == htResponseInfo["selectedAddress.baseAddress.countryCode"].ToString()).CountryId; } if (htResponseInfo.ContainsKey("selectedAddress.baseAddress.state")) { billingAddress.StateProvinceId = states.Find(x => x.Abbreviation.Trim() == htResponseInfo["selectedAddress.baseAddress.state"].ToString()).StateProvinceId; } CustData.FirstName = CommonHelper.fixquotesAccents(billingAddress.FirstName); CustData.LastName = CommonHelper.fixquotesAccents(billingAddress.LastName); CustData.PhoneNumber = ""; CustData.Email = CommonHelper.fixquotesAccents(strEmail); CustData.Username = CommonHelper.fixquotesAccents(strEmail); } CustData.BillingAddress = billingAddress; CustData.ShippingAddress = billingAddress; ClientOrderData.PaymentInfo = orderData.CreditInfo; ClientOrderData.CustomerInfo = CustData; // add rush shipping level to cart object if (!string.IsNullOrEmpty(ddlAdditionShippingCharge.SelectedValue)) { ClientOrderData.CartInfo.ShippingMethod = UserShippingMethodType.Rush; ClientOrderData.CartInfo.ShippingChargeKey = ddlAdditionShippingCharge.SelectedValue; } cartObject = new Cart(); foreach (Sku OrderSKU in orderData.SkuItems) { cartObject.AddItem(OrderSKU.SkuId, OrderSKU.Quantity, true, false); } cartObject.ShippingAddress = ClientOrderData.CustomerInfo.ShippingAddress; cartObject.ShippingMethod = ClientOrderData.CartInfo.ShippingMethod; cartObject.ShippingChargeKey = ClientOrderData.CartInfo.ShippingChargeKey; cartObject.Compute(); cartObject.ShowQuantity = false; ClientOrderData.CartInfo = cartObject; CSResolve.Resolve <IOrderService>().UpdateOrder(orderData.OrderId, ClientOrderData); CSResolve.Resolve <IOrderService>().SaveOrder(orderData.OrderId, strTransactionId, strPayKey, 3); } }