private OrderInfo UpdateOrderStatus(int orderID, OrderInfo.OrderStatusList orderStatus) { OrderController orderController = new OrderController(); OrderInfo order = orderController.GetOrder(orderID); switch (orderStatus) { case OrderInfo.OrderStatusList.Cancelled: order.OrderStatusID = 6; break; case OrderInfo.OrderStatusList.Paid: order.OrderStatusID = 7; break; } orderController.UpdateOrder(order.OrderID, order.OrderDate, order.OrderNumber, order.ShippingAddressID, order.BillingAddressID, order.Tax, order.ShippingCost, true, order.OrderStatusID, order.CustomerID); return order; }
public TransactionResult ProcessTransaction(IAddressInfo shipping, IAddressInfo billing, OrderInfo orderInfo, object transDetails) { TransactionResult result = new TransactionResult(); // Check data before performing transaction AuthNetSettings settings = new AuthNetSettings(_gatewaySettings); if ((settings == null) || (!settings.IsValid())) { result.Succeeded = false; result.Message = "ErrorPaymentOption"; return result; } if (billing == null) { result.Succeeded = false; result.Message = "ErrorBillingAddress"; return result; } TransactionDetails trans = new TransactionDetails(transDetails as string); if ((trans == null) || (!trans.IsValid())) { result.Succeeded = false; result.Message = "ErrorCardInformation"; return result; } // Gather transaction information string url = settings.GatewayURL; string firstName = string.Empty; string lastName = trans.NameOnCard; if (lastName.IndexOf(" ") >= 0) { firstName = lastName.Substring(0, lastName.IndexOf(" ")).Trim(); lastName = lastName.Substring(lastName.LastIndexOf(" ")).Trim(); } string address = billing.Address1 + " " + billing.Address2; address = address.Trim(); NameValueCollection NVCol = new NameValueCollection(); //NVCol.Add("x_version", settings.Version); NVCol.Add("x_delim_data", "True"); NVCol.Add("x_relay_response", "False"); NVCol.Add("x_login", settings.Username); NVCol.Add("x_tran_key", settings.Password); NVCol.Add("x_test_request", settings.IsTest.ToString()); NVCol.Add("x_delim_char", "~"); NVCol.Add("x_encap_char", "'"); NVCol.Add("x_first_name", firstName); NVCol.Add("x_last_name", lastName); NVCol.Add("x_company", ""); NVCol.Add("x_address", address); NVCol.Add("x_city", billing.City); NVCol.Add("x_state", billing.RegionCode); NVCol.Add("x_zip", billing.PostalCode); NVCol.Add("x_country", billing.CountryCode); NVCol.Add("x_phone", billing.Phone1); NVCol.Add("x_invoice_num", orderInfo.OrderID.ToString()); NVCol.Add("x_amount", orderInfo.OrderTotal.ToString()); NVCol.Add("x_method", "CC"); NVCol.Add("x_card_num", trans.CardNumber); NVCol.Add("x_card_code", trans.VerificationCode.ToString()); NVCol.Add("x_exp_date", trans.ExpirationMonth.ToString() + "/" + trans.ExpirationYear.ToString()); NVCol.Add("x_recurring_billing", "NO"); NVCol.Add("x_type", settings.Capture.ToString()); // Perform transaction try { Encoding enc = Encoding.GetEncoding(1252); StreamReader loResponseStream = new StreamReader(PostEx(url, NVCol).GetResponseStream(), enc); string lcHtml = loResponseStream.ReadToEnd(); loResponseStream.Close(); string[] resultArray = Microsoft.VisualBasic.Strings.Split(lcHtml.TrimStart("'".ToCharArray()), "'~'", -1, Microsoft.VisualBasic.CompareMethod.Binary); //TODO: What transaction details to return??? result.Succeeded = (resultArray[0] == "1"); result.Message = resultArray[3]; } catch (Exception ex) { //Return error string[] resultArray = Microsoft.VisualBasic.Strings.Split("2|0|0|No Connection Available", "|", -1, Microsoft.VisualBasic.CompareMethod.Binary); //TODO: What transaction details to return??? result.Succeeded = false; result.Message = ex.Message; //result.Message = resultArray[3]; } return result; }
/// <summary> /// This informs the checkout controls that the order has been updated. /// </summary> /// <param name="orderInfo"></param> private void updateCheckoutOrder(OrderInfo orderInfo) { if (orderInfo != null) { this.taxControl.OrderInfo = orderInfo; this.shippingControl.OrderInfo = orderInfo; updateCartTotal(orderInfo); } else { //A null order should NOT be allowed to checkout, so redirect the tab id without specifying the checkout control. if (Request.QueryString["PayPalExit"] == null) { HttpContext.Current.Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID), true); } } }
private void SetupPayPalFields(OrderInfo orderInfo) { IAddressInfo shippingAddress = getShipToAddress(orderInfo.ShippingAddressID); IAddressInfo billingAddress = getBillToAddress(orderInfo.BillingAddressID); GatewayController controller = new GatewayController(Server.MapPath(ModulePath)); GatewayInfo gateway = controller.GetGateway(storeInfo.GatewayName); PayPalSettings _settings = new PayPalSettings(gateway.GetSettings(PortalId)); // Ajouté pour la localisation CultureInfo ci_enUS = new CultureInfo("en-US"); //_verificationURL = _settings.UseSandbox ? _sandboxVerificationURL : _liveVerificationURL; //_paymentURL = _settings.UseSandbox ? _sandboxPaymentURL : _livePaymentURL; _verificationURL = _settings.UseSandbox ? _sandboxVerificationURL : _settings.VerificationURL; _paymentURL = _settings.UseSandbox ? _sandboxPaymentURL : _settings.PaymentURL; //Set the paypal url as form target pnlPayPalTransfer.Visible = true; pnlOrderDetails.Visible = false; btnGoToPayPal.PostBackUrl = _paymentURL; paypalimage2.ImageUrl = _settings.ButtonURL; string returnURL = Request.Url + "&PayPalExit=return"; string cancelURL = Request.Url + "&PayPalExit=cancel"; string notifyURL = Request.Url + "&PayPalExit=notify"; AddHiddenField("cmd", "_cart"); AddHiddenField("upload", "1"); AddHiddenField("business", _settings.PayPalID); AddHiddenField("handling_cart", orderInfo.ShippingCost.ToString("0.00", ci_enUS)); //AddHiddenField("handling_cart", orderInfo.ShippingCost.ToString("0.00")); AddHiddenField("charset", _settings.Charset); AddHiddenField("currency_code", _settings.Currency); AddHiddenField("invoice", orderInfo.OrderID.ToString()); AddHiddenField("return", returnURL); AddHiddenField("cancel_return", cancelURL); AddHiddenField("notify_url", notifyURL); AddHiddenField("rm", "2"); AddHiddenField("lc", _settings.Lc); //AddHiddenField("lc", "GB"); _Message = Localization.GetString("PayPalReturnTo", this.LocalResourceFile); AddHiddenField("cbt", string.Format(_Message, PortalSettings.PortalName)); //AddHiddenField("cbt", "Back to " + PortalSettings.PortalName); if (orderInfo.Tax > 0) { AddHiddenField("tax_cart", orderInfo.Tax.ToString("0.00", ci_enUS)); //AddHiddenField("tax_cart", orderInfo.Tax.ToString("0.00")); } //Cart Contents... OrderController orderController = new OrderController(); ArrayList cartItems = orderController.GetOrderDetails(orderInfo.OrderID); int itemNumber = 1; foreach (OrderDetailsInfo itemInfo in cartItems) { AddHiddenField("item_name_" + itemNumber.ToString(), itemInfo.ModelName); AddHiddenField("quantity_" + itemNumber.ToString(), itemInfo.Quantity.ToString()); AddHiddenField("amount_" + itemNumber.ToString(), itemInfo.UnitCost.ToString("0.00", ci_enUS)); //AddHiddenField("amount_" + itemNumber.ToString(), itemInfo.UnitCost.ToString("0.00")); itemNumber++; } //Customer Address... AddHiddenField("email", UserInfo.Membership.Email); AddHiddenField("first_name", GetFirstName(billingAddress.Name)); AddHiddenField("last_name", GetSurname(billingAddress.Name)); AddHiddenField("address1", billingAddress.Address1); AddHiddenField("address2", billingAddress.Address2); AddHiddenField("city", billingAddress.City); AddHiddenField("zip", billingAddress.PostalCode); AddHiddenField("country", (billingAddress.CountryCode.Equals("United Kingdom") ? "GB" : billingAddress.CountryCode)); AddHiddenField("business_cs_email", UserInfo.Membership.Email); AddHiddenField("business_address1", billingAddress.Address1); AddHiddenField("business_address2", billingAddress.Address2); AddHiddenField("business_city", billingAddress.City); AddHiddenField("business_zip", billingAddress.PostalCode); AddHiddenField("business_country", billingAddress.CountryCode); }
private void updateCartTotal(OrderInfo orderInfo) { if (orderInfo != null) { this.txtCartTotal.Text = orderInfo.GrandTotal.ToString("C", LocalFormat); } else { this.txtCartTotal.Text = 0M.ToString("C", LocalFormat); } }
/// <summary> /// This event should occur each time a change is made to the cart. /// All of the Checkout controls should be updated with the new cart information and the /// order updated. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cartControl_EditComplete(object sender, EventArgs e) { OrderController orderController = new OrderController(); CartInfo cartInfo = CurrentCart.GetInfo(PortalId); if (cartInfo != null & _orderInfo != null) { _orderInfo = orderController.UpdateOrderDetails(_orderInfo.OrderID, cartInfo.CartID); } CalculateTaxandShipping(_orderInfo); updateCheckoutOrder(_orderInfo); }
/// <summary> /// Calculate the tax and shipping cost for the order. /// </summary> /// <param name="orderInfo"></param> private void CalculateTaxandShipping(OrderInfo orderInfo) { if (orderInfo != null) { ArrayList cartItems = CurrentCart.GetItems(PortalId); //Shipping... IShippingProvider shippingProvider = StoreController.GetShippingProvider(ModulePath); decimal cartWeight = 0; foreach (ItemInfo itemInfo in cartItems) { cartWeight += (itemInfo.ProductWeight * itemInfo.Quantity); } IShippingInfo shippingInfo = shippingProvider.CalculateShippingFee(PortalId, cartWeight); if (shippingInfo == null) { plhAddressCheckout.Visible = false; plhGateway.Visible = false; plhTaxCheckout.Visible = false; plhShippingCheckout.Visible = false; trRow4.Visible = false; trRow5.Visible = false; trRow6.Visible = false; trRow8.Visible = false; //lblError.Text = "<br/>Sorry, but we don't have any shipping rates for the weight of items in your basket. Please <a href=\"mailto:" + this.PortalSettings.Email + "\">contact us</a> stating the list of products you'd like to order and we'll get a shipping quote for you."; lblError.Text = String.Format(Localization.GetString("ErrorShippingRates", this.LocalResourceFile), this._storeInfo.DefaultEmailAddress); //lblError.Text = String.Format(Localization.GetString("ErrorShippingRates", this.LocalResourceFile), this.PortalSettings.Email); lblError.Visible = true; return; } else { plhAddressCheckout.Visible = true; plhGateway.Visible = true; plhTaxCheckout.Visible = true; plhShippingCheckout.Visible = true; trRow4.Visible = true; trRow5.Visible = true; trRow6.Visible = true; trRow8.Visible = true; lblError.Visible = false; } orderInfo.ShippingCost = shippingInfo.Cost; //Surcharges... try { PayPalSettings payPalSettings = new PayPalSettings(StoreData.GatewaySettings); decimal m_FixedSurcharge = payPalSettings.SurchargeFixed; decimal m_PercentSurcharge = payPalSettings.SurchargePercent; orderInfo.ShippingCost = orderInfo.ShippingCost + m_FixedSurcharge + ((orderInfo.OrderTotal + orderInfo.ShippingCost + m_FixedSurcharge) * (m_PercentSurcharge / 100)); shippingInfo.Cost = orderInfo.ShippingCost; } catch { //Not paypal } //Tax... ITaxProvider taxProvider = StoreController.GetTaxProvider(ModulePath); ITaxInfo taxInfo = taxProvider.CalculateSalesTax(PortalId, cartItems, shippingInfo, ShippingAddress); //if (taxInfo.ShowTax) //Response.Write("<br>CountryCode0: " + BillingAddress.CountryCode); try { //Response.Write("<br>CountryCode2: " + shippingControl.BillingAddress.CountryCode); //Response.Write("<br>CountryCode3: " + shippingProvider.BillingAddress.CountryCode); } catch (Exception ex) { } if (taxInfo.ShowTax && (BillingAddress.CountryCode == "United Kingdom")) // ns4u changes: only the UK countries pay VAT { trTax.Visible = true; orderInfo.Tax = taxInfo.SalesTax; } else { trTax.Visible = false; orderInfo.Tax = 0; } } }
protected void Page_Load(object sender, System.EventArgs e) { //Response.Write("Page_Load"); // return; if (_storeInfo == null) { StoreController storeController = new StoreController(); _storeInfo = storeController.GetStoreInfo(PortalId); if (_storeInfo.CurrencySymbol != string.Empty) { LocalFormat.CurrencySymbol = _storeInfo.CurrencySymbol; } if (_storeInfo.PortalTemplates) { CssTools.AddCss(this.Page, PortalSettings.HomeDirectory + "Store", PortalId); } else { CssTools.AddCss(this.Page, this.TemplateSourceDirectory, PortalId); } } lblGatewayTitle.Visible = false; if (forceSSL()) { SSLHelper.RequestSecurePage(); } //Mail.SendMail(PortalSettings.Email, "*****@*****.**", "", "Canadean Checkout ", " ", "", "", "", "", "", ""); if (Request.QueryString["WorldPayExit"] != null) { //Mail.SendMail(PortalSettings.Email, "*****@*****.**", "", "Canadean Payment Checkout - " + Request.QueryString["WorldPayExit"], " ", "", "", "", "", "", ""); loadPaymentControl(); return; } loadCartControl(); loadAddressControl(); loadPaymentControl(); loadTaxCheckoutControl(); loadShippingCheckoutControl(); _orderInfo = GetExistingOrder(); updateCheckoutAddress(); if (Request.QueryString["PayPalExit"] == null) { if (!this.Page.IsPostBack) { if (_orderInfo == null) { _orderInfo = CreateOrder(); } //Update the order details with the most recent cart items. OrderController orderController = new OrderController(); CartInfo cartInfo = CurrentCart.GetInfo(PortalId); if (cartInfo != null & _orderInfo != null) { _orderInfo = orderController.UpdateOrderDetails(_orderInfo.OrderID, cartInfo.CartID); } } CalculateTaxandShipping(_orderInfo); updateCheckoutOrder(_orderInfo); updateStoreInfo(); } }
private void UpdateShippingTotal(OrderInfo orderInfo) { if( orderInfo != null) { this.txtShippingTotal.Text = this.OrderInfo.ShippingCost.ToString("C", LocalFormat); } else { this.txtShippingTotal.Text = 0M.ToString("C", LocalFormat); } }