Exemple #1
0
        /// <summary>
        /// Consulta status da Transação
        /// </summary>
        /// <param name="idTransacao">ID da transação na Akatus.</param>
        public Akatus.ConsultaStatus.Retorno consultaStatusTransacao(string idTransacao)
        {
            //Armazena dados de retorno
            Akatus.ConsultaStatus.Retorno retorno;

            #region Obtém XML

            //URL de Destino (http://www.akatus.com/api/v1/transacao-simplificada/ID_TRANSACAO_AKATUS.xml?email=EMAIL_RECEBEDOR&api_key=TOKEN_GERADO_AKATUS)
            string urlDestino = string.Format("{0}/{1}.xml?email={2}&api_key={3}", Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes, idTransacao, Akatus.Config.Email, Akatus.Config.ApiKey);

            //Pega Dados
            string resultado = Akatus.Rest.get(urlDestino);

            //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];

                    //Preenche dados de retorno
                    retorno = new Akatus.ConsultaStatus.Retorno();

                    #region Seta propriedades

                    retorno.Valor           = Akatus.Util.parseDecimalWithoutSeparator(xmlResult["valor"].InnerText);
                    retorno.DataCriacao     = Akatus.Util.parseDateTime(xmlResult["data_criacao"].InnerText);
                    retorno.DataStatusAtual = Akatus.Util.parseDateTime(xmlResult["data_status_atual"].InnerText);

                    string status = xmlResult["status"].InnerText;

                    //Seta status
                    if (status == "Aguardando Pagamento")
                    {
                        retorno.Status = Akatus.Enums.StatusTransacao.aguardandoPagamento;
                    }
                    else if (status == "Em Análise")
                    {
                        retorno.Status = Akatus.Enums.StatusTransacao.emAnalise;
                    }
                    else if (status == "Aprovado")
                    {
                        retorno.Status = Akatus.Enums.StatusTransacao.aprovado;
                    }
                    else if (status == "Cancelado")
                    {
                        retorno.Status = Akatus.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;
                    }

                    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);
        }
        /// <summary>
        /// Consulta status da Transação
        /// </summary>
        /// <param name="idTransacao">ID da transação na Akatus.</param>
        public Akatus.ConsultaStatus.Retorno consultaStatusTransacao(string idTransacao)
        {
            //Armazena dados de retorno
            Akatus.ConsultaStatus.Retorno retorno;

            #region Obtém XML

            //URL de Destino (http://www.akatus.com/api/v1/transacao-simplificada/ID_TRANSACAO_AKATUS.xml?email=EMAIL_RECEBEDOR&api_key=TOKEN_GERADO_AKATUS)
            string urlDestino = string.Format("{0}/{1}.xml?email={2}&api_key={3}", Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes, idTransacao, Akatus.Config.Email, Akatus.Config.ApiKey);

            //Pega Dados
            string resultado = Akatus.Rest.get(urlDestino);

            //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];

                    //Preenche dados de retorno
                    retorno = new Akatus.ConsultaStatus.Retorno();

                    #region Seta propriedades

                    retorno.Valor = Akatus.Util.parseDecimalWithoutSeparator(xmlResult["valor"].InnerText);
                    retorno.DataCriacao = Akatus.Util.parseDateTime(xmlResult["data_criacao"].InnerText);
                    retorno.DataStatusAtual = Akatus.Util.parseDateTime(xmlResult["data_status_atual"].InnerText);

                    string status = xmlResult["status"].InnerText;

                    //Seta status
                    if (status == "Aguardando Pagamento")
                        retorno.Status = Akatus.Enums.StatusTransacao.aguardandoPagamento;
                    else if (status == "Em Análise")
                        retorno.Status = Akatus.Enums.StatusTransacao.emAnalise;
                    else if (status == "Aprovado")
                        retorno.Status = Akatus.Enums.StatusTransacao.aprovado;
                    else if (status == "Cancelado")
                        retorno.Status = Akatus.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;

                    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;
        }