private void AtualizarVendaBilheteria(BD bd, EstruturaVenda venda) { try { string nota = string.Empty; if (oProcessamento.oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.Adyen) { nota = AdyenStatic.Fields.NotaFiscal; } else { nota = oProcessamento.oPagamento.oSitef.CupomFiscal; } oVendaBilheteria.AtualizarPagamentoProcessado(bd, venda.ID, nota); if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("Pagamento e Nota fiscal Atualizados.", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.Transacoes); } } catch (Exception ex) { if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Não foi possível atualizar o Pagamento e Nota Fiscal.", ex.Message, SalvarLog.Events.Transacoes); } throw ex; } }
private void AtualizarFormaPagamento(BD bd, EstruturaVenda venda) { oVendaBilheteriaFormaPagamento.Ler(venda.FormaPagamento.VendaBilheteriaFormaPagamentoID); if (oProcessamento.oPagamento.TipoPagamento == EstruturaPagamento.enumTipoPagamento.Adyen) { oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oAdyen.CodigoReferencia; oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor = oProcessamento.oPagamento.oAdyen.CodigoAutenticacao ?? oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor; oVendaBilheteriaFormaPagamento.Cupom.Valor = AdyenStatic.Fields.NotaFiscal; } else { oVendaBilheteriaFormaPagamento.VendaBilheteriaFormaPagamentoTEFID.Valor = oProcessamento.oPagamento.oSitef.ID; oVendaBilheteriaFormaPagamento.CodigoRespostaVenda.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefVenda; oVendaBilheteriaFormaPagamento.MensagemRetorno.Valor = oProcessamento.oPagamento.oSitef.MensagemFinaliza; oVendaBilheteriaFormaPagamento.HoraTransacao.Valor = oProcessamento.oPagamento.oSitef.HoraTransacao; oVendaBilheteriaFormaPagamento.DataTransacao.Valor = oProcessamento.oPagamento.oSitef.DataTransacao; oVendaBilheteriaFormaPagamento.CodigoIR.Valor = oProcessamento.oPagamento.oSitef.CodigoIR; oVendaBilheteriaFormaPagamento.NumeroAutorizacao.Valor = oProcessamento.oPagamento.oSitef.NumeroAutorizacao; oVendaBilheteriaFormaPagamento.NSUHost.Valor = oProcessamento.oPagamento.oSitef.NSUHost; oVendaBilheteriaFormaPagamento.NSUSitef.Valor = oProcessamento.oPagamento.oSitef.NSUSitef; oVendaBilheteriaFormaPagamento.Cupom.Valor = oProcessamento.oPagamento.oSitef.CupomFiscal; oVendaBilheteriaFormaPagamento.DadosConfirmacaoVenda.Valor = oProcessamento.oPagamento.oSitef.DadosConfirmacao; oVendaBilheteriaFormaPagamento.Rede.Valor = oProcessamento.oPagamento.oSitef.RedeRetorno; oVendaBilheteriaFormaPagamento.CodigoRespostaTransacao.Valor = oProcessamento.oPagamento.oSitef.CodigoRespostaSitefFinaliza; if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("VendaBilheteriaFormaPagamento Atualizada\n NotaFiscal: " + oProcessamento.oPagamento.oSitef.CupomFiscal, Enumeradores.TipoEntrada.Sucesso, SalvarLog.Events.Transacoes); } } oVendaBilheteriaFormaPagamento.Atualizar(bd); }
public void EfetuarPagamentos(List <EstruturaVenda> listVendas, string action = "") { try { LogUtil.Debug(string.Format("##HammerHead.EfetuandoPagamentos##")); if (listVendas.Count == 0) { LogUtil.Debug(string.Format("##HammerHead.EfetuandoPagamentos.FilaVazia##")); return; // A fila está vazia } foreach (var venda in listVendas) { try { EfetuarPagamento(venda, action); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.EfetuandoPagamentos.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); SalvarLog.SalvarErro("Falha ao processar transação: " + venda.Senha, ex.Message, this.salvarlogevent); } } } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.EfetuandoPagamentos.EXCEPTION## MSG: {0}", ex.Message), ex); throw; } }
private void Chageback(EstruturaVenda venda) { try { LogUtil.Info(string.Format("##HammerHead.Chageback## VENDA: {0}", venda.ID)); oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Aprovado, venda.Score, venda.RetornoAccertify); LogUtil.Info(string.Format("##HammerHead.Chageback.SUCCESS## VENDA: {0}", venda.ID)); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.Chageback.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); SalvarLog.SalvarErro("Erro ao atualizar chargeback: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
private static void Salvar(bool hasEnd, DateTime inicio, DateTime fim, string mensagem, string Erro, Enumeradores.TipoEntrada tipo, Events evento) { var sw = new Stopwatch(); sw.Start(); LogUtil.Debug("##SalvarLog.Salvar.Started##"); try { var source = ConfigurationManager.AppSettings["EventViewerSource"]; var logName = ConfigurationManager.AppSettings["EventViewerLogName"]; LogUtil.Debug(String.Format("##SalvarLog.Salvar## SOURCE: {0}, LOG_NAME: {1}", source, logName)); if (tipo == Enumeradores.TipoEntrada.Erro) { mensagem = string.Format("Erro ao processar.\n\n{0}\nErro:{1}", mensagem, Erro); } if (!hasEnd) { LogUtil.Debug(String.Format("##SalvarLog.Salvar.BeforeInsert## TEMPO_DECORRIDO: {0} ms", sw.ElapsedMilliseconds)); if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLogSQL.Valor) { BD.Executar( string.Format("INSERT INTO tLogHammerHead VALUES ('{0}','{1}','{2}','{3}','{4}', '{5}')", source, logName, mensagem, tipo, evento.ToString(), DateTime.Now.ToString("yyyyMMddHHmmss"))); } LogUtil.Debug(String.Format("##SalvarLog.Salvar.AfterInsert## TEMPO_DECORRIDO: {0} ms", sw.ElapsedMilliseconds)); } } catch (Exception ex) { SalvarLog.EscreveLog(mensagem + "\n " + Erro + "\nException: " + ex.Message); } finally { sw.Stop(); LogUtil.Debug(String.Format("##SalvarLog.Salvar.FINISH## TEMPO_DECORRIDO_TOTAL: {0} ms", sw.ElapsedMilliseconds)); } }
private void CancelarSemFraude(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } EstruturaVenda venda = (EstruturaVenda)objVenda; try { oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Cancelado, venda.Score, venda.RetornoAccertify); } catch (Exception ex) { SalvarLog.SalvarErro("Erro ao cancelar a Venda: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
private void VendaJaCancelada(EstruturaVenda venda, bool fraude = false) { try { LogUtil.Info(string.Format("##HammerHead.VendaJaCancelada## VENDA: {0}", venda.ID)); var statusAntiFraude = fraude ? VendaBilheteria.StatusAntiFraude.Fraude : VendaBilheteria.StatusAntiFraude.Aprovado; oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, statusAntiFraude, venda.Score, venda.RetornoAccertify); LogUtil.Info(string.Format("##HammerHead.VendaJaCancelada.SUCCESS## VENDA: {0}", venda.ID)); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.VendaJaCancelada.EXCEPTION## VENDA: {0}, MSG: {1}", venda.ID, ex.Message), ex); SalvarLog.SalvarErro("Erro ao atualizar venda já cancelada: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
public List <EstruturaVenda> CarregarVendas(Enumeradores.Site site, string modo = "todos") { var listVendas = new List <EstruturaVenda>(); try { listVendas = oVendaBilheteria.CarregarVendasParaPagamento(site, modo); LogUtil.Info(string.Format("##HammerHead.CarregandoVenda.SUCCESS## VENDAS_ENCONTRADAS: {0}", listVendas.Count)); } catch (Exception ex) { LogUtil.Error(string.Format("##HammerHead.CarregandoVenda.EXCEPTION## MSG: {0}", ex.Message), ex); SalvarLog.SalvarErro("Não foi possível carregar a fila.", ex.Message, SalvarLog.Events.Fila); } finally { SalvarLog.Salvar("Foram encontrados : " + listVendas.Count + " registros para processar", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.Fila); } return(listVendas); }
private void AtualizarVenda(EstruturaVenda venda) { BD bd = new BD(); try { bd.IniciarTransacao(); this.AtualizarVendaBilheteria(bd, venda); this.AtualizarFormaPagamento(bd, venda); bd.FinalizarTransacao(); } catch (Exception ex) { bd.DesfazerTransacao(); SalvarLog.SalvarErro("Falha ao atualizar a venda", ex.Message, SalvarLog.Events.Transacoes); } finally { bd.Fechar(); } }
private void Fraude(object objVenda) { if (!(objVenda is EstruturaVenda)) { return; } var venda = (EstruturaVenda)objVenda; try { oVendaBilheteria.Score.Valor = venda.Score; oVendaBilheteria.AtualizarStatusAntiFraude(venda.ID, VendaBilheteria.StatusAntiFraude.Fraude, venda.Score, venda.RetornoAccertify); var detalheVendas = oVendaBilheteria.AcompanhamentoIngressos(venda.ID); LogUtil.Debug(string.Format("##HammerHead.Fraude.EnviarEmail## VENDA: {0}, MSG: {1}", venda.ID, "EnviarCancelamentoFraude")); email.EnviarCancelamentoFraude(venda.Cliente.ID, detalheVendas, ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor); } catch (Exception ex) { SalvarLog.SalvarErro("Erro ao cancelar a Venda: " + venda.ID, ex.Message, SalvarLog.Events.Transacoes); } }
public void ProcessarVenda(EstruturaVenda venda, string action = "") { var sw = new Stopwatch(); sw.Start(); if (venda.VendaCancelada) { this.oProcessamento.RetornoAccertify = Enumeradores.RetornoAccertify.VendaJaCancelada; } var retorno = oProcessamento.ProcessarVenda(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); switch (retorno) { case Enumeradores.RetornoProcessamento.Processado: this.Aprovar(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Aprovar.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CancelarAccertify: this.Fraude(venda); //cancelar ingressos oVendaBilheteria.CancelarVenda(venda, true); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.CancelarVenda.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.AguardarAccertify: case Enumeradores.RetornoProcessamento.Timeout: this.Analisar(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Analisar.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.SolicitarDocumentos: this.SolicitarDocumentos(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.SolicitarDocumentos.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CancelarSemFraude: this.CancelarSemFraude(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.CancelarSemFraude.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.CartaoInvalido: LogUtil.Error(string.Format("##HammerHead.ProcessandoVenda.ERROR## VENDA: {0}, RETORNO_ACCERTIFY: {1}", venda.ID, retorno)); break; case Enumeradores.RetornoProcessamento.Chargeback: this.Chageback(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.Chageback.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; case Enumeradores.RetornoProcessamento.VendaJaCancelada: var fraude = (action == "REJECT"); this.VendaJaCancelada(venda, fraude); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.VendaJaCancelada.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); oVendaBilheteria.CancelarVenda(venda, fraude); break; case Enumeradores.RetornoProcessamento.Bypass: default: this.AtualizarScore(venda); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.AtualizarScore.Finish## VENDA: {0}, RETORNO_ACCERTIFY: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, retorno, sw.ElapsedMilliseconds)); break; } var saveLog = ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor; LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.BeforeLog## VENDA: {0}, SALVAR_LOG: {1}, TEMPO_DECORRIDO: {2} ms", venda.ID, saveLog, sw.ElapsedMilliseconds)); if (saveLog) { SalvarLog.Salvar(string.Format("Venda processada HammerHead. \n Venda: {0} \nScore:{1}\nRecommendation: {2}", venda.Senha, venda.Score.ToString(), venda.RetornoAccertify.ToString()), Enumeradores.TipoEntrada.Sucesso); } sw.Stop(); LogUtil.Debug(string.Format("##HammerHead.ProcessandoVenda.FINISH## VENDA: {0}, TEMPO_DECORRIDO_TOTAL: {1} ms", venda.ID, sw.ElapsedMilliseconds)); }
private Enumeradores.RetornoProcessamento Processar() { try { LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoPagamentoEAnalise## CLIENTE: {0}", this.oPagamento.ClienteID)); if (ConfiguracaoHammerHead.Instancia.Configuracao.AmbienteDeTestes.Valor) { SalvarLog.Salvar("Ambiente de testes ativo!", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.AmbienteTesteAtivo); var rnd = new Random(); Thread.Sleep(rnd.Next(2000)); var processamento = rnd.Next() % 2 == 0 ? Enumeradores.RetornoProcessamento.Processado : Enumeradores.RetornoProcessamento.CancelarAccertify; LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoPagamentoEAnalise.AmbienteDeTestes## CLIENTE: {0}, RETORNO: {1}, GATEWAY: {2}", this.oPagamento.ClienteID, processamento, this.oPagamento.TipoPagamento)); if (this.oPagamento.TipoPagamento != EstruturaPagamento.enumTipoPagamento.Adyen) { return(processamento); } if (processamento == Enumeradores.RetornoProcessamento.Processado && this.oPagamento.FormaPagamentoOrigem == 0) { LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoPagamentoEAnalise.AmbienteDeTestes.PROCESSADO## CLIENTE: {0}, RETORNO: {1}, MSG: {2}", this.oPagamento.ClienteID, processamento, "Capturando pagamento na Adyen")); oPagamento.oAdyen.CapturarPagamento(); } else { LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoPagamentoEAnalise.AmbienteDeTestes.RECUSADO## CLIENTE: {0}, RETORNO: {1}, MSG: {2}", this.oPagamento.ClienteID, processamento, "Cancelando pagamento na Adyen")); oPagamento.oAdyen.CancelarPagamento(); } return(processamento); } else { switch (this.oPagamento.TipoPagamento) { case EstruturaPagamento.enumTipoPagamento.TEF: return(this.ProcessarTEF()); case EstruturaPagamento.enumTipoPagamento.Adyen: return(this.ProcessarAdyen()); case EstruturaPagamento.enumTipoPagamento.Paypal: RetornoAccertify = Enumeradores.RetornoAccertify.Bypass; return(Enumeradores.RetornoProcessamento.Bypass); default: return(Enumeradores.RetornoProcessamento.Processado); } } } catch (System.Net.WebException ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoAdyen.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); throw; } catch (System.Web.Services.Protocols.SoapHeaderException ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoAdyen.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); throw; } catch (System.Net.Sockets.SocketException ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoAdyen.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); throw; } catch (Exception ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoPagamentoEAnalise.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Transação Inválida.", "Venda: " + Venda.ID + "\nException: " + ex.Message, SalvarLog.Events.Transacoes); } return(Enumeradores.RetornoProcessamento.CartaoInvalido); } }
private void ConsultarAccertify() { LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultandoAccertify## CLIENTE: {0}, RETURN_SINGLE: {1}, PAGAMENTO_ORIGEM: {2}", this.oPagamento.ClienteID, this.Single, this.oPagamento.FormaPagamentoOrigem)); if (Single || this.oPagamento.FormaPagamentoOrigem > 0 || this.Venda.VendaCancelada) //Já foi preenchido! { if (this.oPagamento.FormaPagamentoOrigem > 0) { RetornoAccertify = Enumeradores.RetornoAccertify.Bypass; } return; } if (!ConfiguracaoAccertify.Instancia.Chaves.Ativo.Valor) { LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultarAccertify.AccertifyDesativado## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, "Aceitar automático")); RetornoAccertify = Enumeradores.RetornoAccertify.Aceitar; if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("Accertify inativa!. Aceitar automático!", Enumeradores.TipoEntrada.Informacao, SalvarLog.Events.Accertify); } return; } if (Venda.DataVenda.Date >= DateTime.Now.AddDays(ConfiguracaoAdyen.Instancia.Chaves.DiasProcessamento.Valor)) { if (Venda.Score == 0) { RetornoAccertify = Enumeradores.RetornoAccertify.CancelarVendaInvalida; //Aconteceu erro ao processar a venda na accertify (provavel nem ter sido enviado), se passar muito tempo, cancela por venda inválida } else if (Venda.Score <= ConfiguracaoAccertify.Instancia.Chaves.ScoreAceitarTempoExcedido.Valor) { RetornoAccertify = Enumeradores.RetornoAccertify.Aceitar; } else { RetornoAccertify = Enumeradores.RetornoAccertify.CancelarTempoLimiteExcedido; } LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultandoAccertify.ValidacaoData## CLIENTE: {0}, DATA_VENDA: {1} >= DATA_DIAS_PROC: {2}, RETORNO_ACCERTIFY: {3}", this.oPagamento.ClienteID, Venda.DataVenda.Date, DateTime.Now.AddDays(ConfiguracaoAdyen.Instancia.Chaves.DiasProcessamento.Valor), RetornoAccertify)); return; } var sw = new Stopwatch(); sw.Start(); var xmlRetorno = new XmlDocument(); try { LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultarAccertify.GerandoXMLVenda## CLIENTE: {0}", this.oPagamento.ClienteID)); var xml = Accertify.GerarXMLVenda(Venda); LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultarAccertify.ChamandoWSAccertify## CLIENTE: {0}", this.oPagamento.ClienteID)); var stringXml = Utilitario.HTTPPostXML(ConfiguracaoAccertify.Instancia.Chaves.URL.Valor, xml.InnerXml, ConfiguracaoAccertify.Instancia.Chaves.Usuario.Valor, ConfiguracaoAccertify.Instancia.Chaves.Senha.Valor); xmlRetorno.LoadXml(stringXml); } catch (Exception ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ConsultarAccertify.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message)); throw ex; } var score = Convert.ToInt32(xmlRetorno.GetElementsByTagName("total-score")[0].InnerText); var recommendation = xmlRetorno.GetElementsByTagName("recommendation-code")[0].InnerText; Venda.Score = score; Venda.RetornoAccertify = Accertify.ParseRetorno(recommendation);// RetornoAccertify; RetornoAccertify = Venda.RetornoAccertify; LogUtil.Debug(string.Format("##ProcessamentoTEF.ConsultarAccertify.SUCCESS## CLIENTE: {0}, SCORE: {1}, RECOMMENDATION: {2}, TEMPO_DECORRIDO_ACCERTIFY: {3} ms", this.oPagamento.ClienteID, score, recommendation, sw.ElapsedMilliseconds)); }
private Enumeradores.RetornoProcessamento ProcessarTEF() { try { LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoTEF## CLIENTE: {0}", this.oPagamento.ClienteID)); this.ConsultarAccertify(); switch (RetornoAccertify) { case Enumeradores.RetornoAccertify.Bypass: case Enumeradores.RetornoAccertify.Aceitar: return(Enumeradores.RetornoProcessamento.Processado); case Enumeradores.RetornoAccertify.AguardarReview: return(Enumeradores.RetornoProcessamento.AguardarAccertify); case Enumeradores.RetornoAccertify.CancelarAltoRisco: case Enumeradores.RetornoAccertify.CancelarTempoLimiteExcedido: case Enumeradores.RetornoAccertify.CancelarVendaInvalida: return(Enumeradores.RetornoProcessamento.CancelarAccertify); case Enumeradores.RetornoAccertify.AcompanhamentoComCliente: return(Enumeradores.RetornoProcessamento.SolicitarDocumentos); case Enumeradores.RetornoAccertify.CancelarSemFraude: return(Enumeradores.RetornoProcessamento.CancelarSemFraude); case Enumeradores.RetornoAccertify.Chargeback: return(Enumeradores.RetornoProcessamento.Chargeback); case Enumeradores.RetornoAccertify.VendaJaCancelada: return(Enumeradores.RetornoProcessamento.VendaJaCancelada); default: return(Enumeradores.RetornoProcessamento.Processado); } } catch (Exception ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoTEF.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); if (ex is VendaCanceladaException) { if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar(ex.Message, Enumeradores.TipoEntrada.Alerta, SalvarLog.Events.Listener); } return(Enumeradores.RetornoProcessamento.VendaCancelada); } if (ex is TimeoutException) { if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Ocorreu um timeout na execução do HammerHead", oPagamento.oSitef.RetornoTEF, SalvarLog.Events.Transacoes); } return(Enumeradores.RetornoProcessamento.Timeout); } if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Transação Inválida.", oPagamento.oSitef.RetornoTEF + "\nException: " + ex.Message, SalvarLog.Events.Transacoes); } return(Enumeradores.RetornoProcessamento.CartaoInvalido); } }
private Enumeradores.RetornoProcessamento ProcessarAdyen() { try { var pagamentoEfetuado = Venda.FormaPagamento.NotaFiscal.Contains(AdyenStatic.Fields.NotaFiscal); LogUtil.Debug(string.Format("##ProcessamentoTEF.ProcessandoAdyen## CLIENTE: {0}, PAGAMENTO_REALIZADO: {1}", this.oPagamento.ClienteID, pagamentoEfetuado)); if (!pagamentoEfetuado) { oPagamento.oAdyen.EfetuarPagamento(); } else { oPagamento.oAdyen.CodigoReferencia = Venda.FormaPagamento.CodigoResposta; } if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.Salvar("Cobrança Adyen (Inicial) HammerHead OK", Enumeradores.TipoEntrada.Sucesso, SalvarLog.Events.Transacoes); } this.ConsultarAccertify(); Enumeradores.RetornoProcessamento retornoProcessamento = 0; LogUtil.Info(string.Format("##ProcessamentoTEF.ProcessandoAdyen.RETORNO## CLIENTE: {0}, RETORNO_ACCERTIFY: {1}", this.oPagamento.ClienteID, RetornoAccertify)); switch (RetornoAccertify) { case Enumeradores.RetornoAccertify.Bypass: case Enumeradores.RetornoAccertify.Aceitar: if (this.oPagamento.FormaPagamentoOrigem == 0) { oPagamento.oAdyen.CapturarPagamento(); } retornoProcessamento = Enumeradores.RetornoProcessamento.Processado; break; case Enumeradores.RetornoAccertify.AcompanhamentoComCliente: retornoProcessamento = Enumeradores.RetornoProcessamento.SolicitarDocumentos; break; case Enumeradores.RetornoAccertify.AguardarReview: retornoProcessamento = Enumeradores.RetornoProcessamento.AguardarAccertify; break; case Enumeradores.RetornoAccertify.Indefinido: LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoAdyen.ERROR## CLIENTE: {0}, RETORNO_ACCERTIFY: {1}", this.oPagamento.ClienteID, RetornoAccertify)); break; case Enumeradores.RetornoAccertify.CancelarSemFraude: retornoProcessamento = Enumeradores.RetornoProcessamento.CancelarSemFraude; break; case Enumeradores.RetornoAccertify.CancelarAltoRisco: case Enumeradores.RetornoAccertify.CancelarTempoLimiteExcedido: case Enumeradores.RetornoAccertify.CancelarVendaInvalida: oPagamento.oAdyen.CancelarPagamento(); retornoProcessamento = Enumeradores.RetornoProcessamento.CancelarAccertify; break; case Enumeradores.RetornoAccertify.Chargeback: retornoProcessamento = Enumeradores.RetornoProcessamento.Chargeback; break; case Enumeradores.RetornoAccertify.VendaJaCancelada: oPagamento.oAdyen.CancelarPagamento(); retornoProcessamento = Enumeradores.RetornoProcessamento.VendaJaCancelada; break; default: throw new ArgumentOutOfRangeException(); } return(retornoProcessamento); } catch (Exception ex) { LogUtil.Error(string.Format("##ProcessamentoTEF.ProcessandoAdyen.EXCEPTION## CLIENTE: {0}, MSG: {1}", this.oPagamento.ClienteID, ex.Message), ex); if (ConfiguracaoHammerHead.Instancia.Configuracao.SalvarLog.Valor) { SalvarLog.SalvarErro("Pagamento Adyen", "Não foi possível processar o pagamento.\nVenda: " + Venda.ID + "\nMotivo: " + ex.Message, SalvarLog.Events.Transacoes); } return(Enumeradores.RetornoProcessamento.CartaoInvalido); } }