public ActionResult Index() { var cart = ShoppingCart.GetCart(this.HttpContext); // Set up our ViewModel var viewModel = new ShoppingCartViewModel { CartItems = cart.GetCartItems(), CartTotal = cart.GetTotal() }; //PUROLATOR ET POSTE CANADA if (User.Identity.IsAuthenticated) { AspNetUser aUser = storeDB.AspNetUsers.FirstOrNull(c => c.Email == User.Identity.Name); viewModel.Shipping = aUser == null ? 0 : new EstimatingPuro().CallGetQuickEstimate(aUser); decimal Pcanada = new GetShipmentPrice().GetPrice(aUser.PostalCode); // L'utilisateur ne choisi pas lequel il prend : il prend le moins chère. if (viewModel.Shipping > Pcanada && Pcanada != 0) { viewModel.Shipping = Pcanada; } } else { viewModel.Shipping = 0.00M; } // Return the view return(View(viewModel)); }
/// <summary> /// Permet de transmettre une requête d'achat à Paypal. /// Une fois accepté, il sera redigiré vers la page de /// confirmation d'achat /// </summary> /// <returns></returns> public ActionResult Checkout() { PaypalNVPAPICaller test = new PaypalNVPAPICaller(); string retMsg = ""; string token = ""; var cart = ShoppingCart.GetCart(this.HttpContext); decimal dMontantTotal = cart.GetTotal(); decimal dshipping = 0; EstimatingPuro puroClient = new EstimatingPuro(); AspNetUser aUser = storeDB.AspNetUsers.First(c => c.Email == User.Identity.Name); dshipping = puroClient.CallGetQuickEstimate(aUser); decimal Pcanada = new GetShipmentPrice().GetPrice(aUser.PostalCode); if (dshipping > Pcanada && Pcanada != 0) { dshipping = Pcanada; } if (dMontantTotal > 0) { decimal twoDec = Math.Round(dMontantTotal + dshipping, 2); string amt = twoDec.ToString().Replace(",", "."); Session["payment_amt"] = amt; bool ret = test.ShortcutExpressCheckout(amt, ref token, ref retMsg, cart.GetCartItems(), dshipping); if (ret) { HttpContext.Session["token"] = token; return(Redirect(retMsg)); } else { return(Redirect("APIError?" + retMsg)); } } else { return(Redirect("APIError?ErrorCode=AmtMissing")); } }