private void ConsultarAccertify() { if (Single) //Já foi preenchido! { return; } if (!ConfiguracaoAccertify.Instancia.Chaves.Ativo.Valor) { 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(IRLib.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; } return; } XmlDocument xml = null; XmlDocument xmlRetorno = new XmlDocument(); try { xml = Accertify.GerarXMLVenda(Venda); xmlRetorno.LoadXml(Utilitario.HTTPPostXML(ConfiguracaoAccertify.Instancia.Chaves.URL.Valor, xml.InnerXml, ConfiguracaoAccertify.Instancia.Chaves.Usuario.Valor, ConfiguracaoAccertify.Instancia.Chaves.Senha.Valor)); } catch (Exception ex) { throw ex; } int score = Convert.ToInt32(xmlRetorno.GetElementsByTagName("total-score")[0].InnerText); string recomendation = xmlRetorno.GetElementsByTagName("recommendation-code")[0].InnerText; Venda.Score = score; var retorno = (IRLib.Paralela.RetornoAccertify.Recommendation)Enum.Parse(typeof(IRLib.Paralela.RetornoAccertify.Recommendation), recomendation); Venda.RetornoAccertify = Accertify.ParseRetorno(recomendation);// RetornoAccertify; RetornoAccertify = Venda.RetornoAccertify; }
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)); }