public JsonResult Editar(Ecommerce_Pedido model, bool notificarCliente) { new PedidoService().UpdateObject(model); var dadosEmail = new PedidoService().DadosEmail(model); if (notificarCliente && model.StatusPedido == 3) { Email.SendNotifyCustomerOrder(dadosEmail); } else if (model.StatusPedido == 2) { var wsReturn = new WS.Commissions.Commissions().GenerateCommissions(Settings.AutenticationKeyEarningSystem, model.IdPedido, 0); } else if (model.StatusPedido == 4) { var wsReturn = new WS.Commissions.Commissions().GenerateReverseCommissions(Settings.AutenticationKeyEarningSystem, model.IdPedido); } return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Constants._msgUpdateSuccess, ReturnUrl = Url.Content("~/Admin/Pedido/") }); }
/// <summary> /// Confirma o pedido do Paypal e salva os detalhes /// </summary> /// <param name="transactionId"></param> /// <returns></returns> protected PedidoModel ConfirmPaypalOrder(string transactionId) { var parameters = new ParametroService().GetByParameterType((int)TipoParametro.FormaDePagamento); var token = parameters.Where(x => x.Nome == "Token").FirstOrDefault().Valor; //Build a url to call Paypal and get data about the Transaction //ex. url?cmd=_notify-synch&tx=[TransactionID]&at=[PDTIdentityToken] var query = string.Format("cmd=_notify-synch&tx={0}&at={1}", transactionId, token); var urlRequest = Settings.PaypalRequest; var requestUrl = string.Format("{0}?{1}", urlRequest, query); var req = (HttpWebRequest)WebRequest.Create(requestUrl); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = query.Length; var stOut = new StreamWriter(req.GetRequestStream(), Encoding.ASCII); stOut.Write(query); stOut.Close(); // Do the request to PayPal and get the response var stIn = new StreamReader(req.GetResponse().GetResponseStream()); var strResponse = stIn.ReadToEnd(); stIn.Close(); // If response was SUCCESS, parse response string and output details if (strResponse.StartsWith("SUCCESS")) { //Verify order var idPedido = UpdatePaypalTransaction(strResponse); try { //Generate Comission bool resultComission = new WS.Commissions.Commissions().GenerateCommissions(Settings.AutenticationKeyEarningSystem, idPedido, GetIdClientCookie(this)); } catch (Exception ex) { LogService.Log("WS.Commissions.Commissions().GenerateCommissions()", ex.Message, TipoLog.Erro); } if (idPedido != 0) { var pedido = new PedidoService().GetById(idPedido, GetCurrentIdIdioma()); return pedido; } throw new Exception(Resources.Resource.Msg_Order_PedidoNaoEncontrado); } throw new Exception(Resources.Resource.Msg_Order_MensagemNaoValidadaPaypal); }
/// <summary> /// Confirmation page /// </summary> /// <returns></returns> public ActionResult Confirmation(int id) { if (User.Identity.IsAuthenticated) { ViewBag.Title = Resources.Resource.Pedido_Confirmacao; var pedidoModel = new PedidoService().GetById(id, GetCurrentIdIdioma()); // try { if (pedidoModel.IdStatus == 2) { //Generate Comission bool resultComission = new WS.Commissions.Commissions().GenerateCommissions(Settings.AutenticationKeyEarningSystem, id, GetIdClientCookie(this)); RemoveIdClientCookie(this); } } catch (Exception ex) { LogService.Log("WS.Commissions.Commissions().GenerateCommissions()", ex.Message, TipoLog.Erro); } // return View("Confirmation", pedidoModel); } else { return RedirectToAction("Index", "Account"); } }
/// <summary> /// Recebera a confirmação do Paypal quando o mesmo não conseguir responder diretamente ao formulário no momento do pagamento. /// </summary> public void ConfirmationPaypalAnswer() { try { var urlRequest = Settings.PaypalRequest; var req = (HttpWebRequest)WebRequest.Create(urlRequest); //Set values for the request back req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; byte[] param = Request.BinaryRead(Request.ContentLength); string strRequest = Encoding.ASCII.GetString(param); strRequest += "&cmd=_notify-validate"; req.ContentLength = strRequest.Length; //Send the request to PayPal and get the response var streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII); streamOut.Write(strRequest); streamOut.Close(); var streamIn = new StreamReader(req.GetResponse().GetResponseStream()); string strResponse = streamIn.ReadToEnd(); streamIn.Close(); if (strResponse == "VERIFIED") { //Update Paypal var idPedido = UpdatePaypalTransaction(strRequest); try { //Generate Comission bool resultComission = new WS.Commissions.Commissions().GenerateCommissions(Settings.AutenticationKeyEarningSystem, idPedido, GetIdClientCookie(this)); } catch (Exception ex) { LogService.Log("WS.Commissions.Commissions().GenerateCommissions()", ex.Message, TipoLog.Erro); } } else if (strResponse == "INVALID") { var e = new Exception(Constants._Paypal_InvalidConfirmation); e.Data.Add("request", strResponse); throw e; } else { var e = new Exception(Constants._Paypal_SuspiciousRequest); e.Data.Add("request", strResponse); throw e; } } catch (Exception ex) { LogService.Log("Order.ConfirmationPaypalAnswer()", ex.Message, TipoLog.Seguranca); } }
private void SetCommissions(PeriodModel period, PromoterModel promoter) { //Retorna as comissões if (period == null) return; var commissions = new WS.Commissions.Commissions().SelectFiltered( Settings.AutenticationKeyEarningSystem, period.DataInicio, period.DataTermino, promoter.IdPromoter); ViewBag.CommisionsTeam = commissions.Where(m => m.Nivel != 0).Sum(m => m.ValorComissao); ViewBag.CommisionsOther = commissions.Where(m => m.Nivel == 0).Sum(m => m.ValorComissao); ViewBag.CommisionsTotal = commissions.Sum(m => m.ValorComissao); }