public Akatus.Carrinho.Retorno processaTransacao() { //Armazena dados de retorno Akatus.Carrinho.Retorno retorno; //Monta XML string xml = montaXML(); #region Envia XML //URL de Destino (https://www.akatus.com/api/v1/carrinho.xml) string urlDestino = Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes; //Envia Dados string resultado = Akatus.Rest.post(urlDestino, xml); //Verifica se o XML é válido bool isValidXml = Akatus.Util.IsValidXML(resultado); if (isValidXml == true) { //Cria XML System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); //Carrega XML xmlDoc.LoadXml(resultado); //Pega dados System.Xml.XmlNodeList xmlResults = xmlDoc.GetElementsByTagName("resposta"); if (xmlResults.Count > 0) { System.Xml.XmlNode xmlResult = xmlResults[0]; //Dados de Resposta retorno = new Akatus.Carrinho.Retorno(); #region Seta propriedades retorno.Carrinho = xmlResult["carrinho"].InnerText; retorno.Transacao = xmlResult["transacao"].InnerText; string status = xmlResult["status"].InnerText.ToString(); if (status == "Aguardando Pagamento") { retorno.Status = Enums.StatusTransacao.aguardandoPagamento; } else if (status == "Em Análise") { retorno.Status = Enums.StatusTransacao.emAnalise; } else if (status == "Aprovado") { retorno.Status = Enums.StatusTransacao.aprovado; } else if (status == "Cancelado") { retorno.Status = Enums.StatusTransacao.cancelado; } else if (status == "Processando") { retorno.Status = Akatus.Enums.StatusTransacao.processando; } else if (status == "Completo") { retorno.Status = Akatus.Enums.StatusTransacao.completo; } else if (status == "Devolvido") { retorno.Status = Akatus.Enums.StatusTransacao.devolvido; } else if (status == "Estornado") { retorno.Status = Akatus.Enums.StatusTransacao.estornado; } else if (status == "Chargeback") { retorno.Status = Akatus.Enums.StatusTransacao.chargeback; } if (this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.boleto || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.tef_itau || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.tef_bradesco) { //URL do boleto ou a página do banco, no caso de TEF retorno.UrlRetorno = xmlResult["url_retorno"].InnerText; } else if (this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_amex || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_diners || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_elo || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_master || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_visa) { //Identificador da transação, usado para controle interno do seu sistema (Retornado somente quando o meio de pagamento é cartão de crédito) retorno.Referencia = xmlResult["referencia"].InnerText; } #endregion } else { //Erro throw new System.ArgumentException("O XML não retornou nós filhos", resultado); } } else { //Erro throw new System.ArgumentException("Formato de XML inválido", resultado); } #endregion //Retorna resposta return(retorno); }
public Akatus.Carrinho.Retorno processaTransacao() { //Armazena dados de retorno Akatus.Carrinho.Retorno retorno; //Monta XML string xml = montaXML(); #region Envia XML //URL de Destino (https://www.akatus.com/api/v1/carrinho.xml) string urlDestino = Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes; //Envia Dados string resultado = Akatus.Rest.post(urlDestino, xml); //Verifica se o XML é válido bool isValidXml = Akatus.Util.IsValidXML(resultado); if (isValidXml == true) { //Cria XML System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); //Carrega XML xmlDoc.LoadXml(resultado); //Pega dados System.Xml.XmlNodeList xmlResults = xmlDoc.GetElementsByTagName("resposta"); if (xmlResults.Count > 0) { System.Xml.XmlNode xmlResult = xmlResults[0]; //Dados de Resposta retorno = new Akatus.Carrinho.Retorno(); #region Seta propriedades retorno.Carrinho = xmlResult["carrinho"].InnerText; retorno.Transacao = xmlResult["transacao"].InnerText; string status = xmlResult["status"].InnerText.ToString(); if (status == "Aguardando Pagamento") retorno.Status = Enums.StatusTransacao.aguardandoPagamento; else if (status == "Em Análise") retorno.Status = Enums.StatusTransacao.emAnalise; else if (status == "Aprovado") retorno.Status = Enums.StatusTransacao.aprovado; else if (status == "Cancelado") retorno.Status = Enums.StatusTransacao.cancelado; else if (status == "Processando") retorno.Status = Akatus.Enums.StatusTransacao.processando; else if (status == "Completo") retorno.Status = Akatus.Enums.StatusTransacao.completo; else if (status == "Devolvido") retorno.Status = Akatus.Enums.StatusTransacao.devolvido; else if (status == "Estornado") retorno.Status = Akatus.Enums.StatusTransacao.estornado; else if (status == "Chargeback") retorno.Status = Akatus.Enums.StatusTransacao.chargeback; if (this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.boleto || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.tef_itau || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.tef_bradesco) { //URL do boleto ou a página do banco, no caso de TEF retorno.UrlRetorno = xmlResult["url_retorno"].InnerText; } else if (this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_amex || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_diners || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_elo || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_master || this.Transacao.MeioDePagamento == Akatus.Enums.MeioDePagamento.cartao_visa) { //Identificador da transação, usado para controle interno do seu sistema (Retornado somente quando o meio de pagamento é cartão de crédito) retorno.Referencia = xmlResult["referencia"].InnerText; } #endregion } else { //Erro throw new System.ArgumentException("O XML não retornou nós filhos", resultado); } } else { //Erro throw new System.ArgumentException("Formato de XML inválido", resultado); } #endregion //Retorna resposta return retorno; }