Exemple #1
0
        /// <summary>
        /// Consulta opções de parcelamento para o valor e meio de pagamentos informados
        /// </summary>
        /// <param name="amount">Valor.</param>
        /// <param name="payment_method">Meio de Pagamento.</param>
        public Akatus.ConsultaParcelamento.Retorno consultaParcelamento(decimal amount, Akatus.Enums.MeioDePagamento payment_method)
        {
            //Armazena dados de retorno
            Akatus.ConsultaParcelamento.Retorno retorno;

            #region Obtém XML

            //URL de Destino (https://www.akatus.com/api/v1/parcelamento/simulacao.xml?email=XXXXXXXXXXXXXXXXXX&amount=XXXXXX&payment_method=XXXXXXX&api_key=XXXXXXXXXXXXXXXXX)
            string urlDestino = string.Format("{0}?email={1}&amount={2}&payment_method={3}&api_key={4}", Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes, Akatus.Config.Email, Akatus.Util.formatCurrency(amount), payment_method.ToString(), 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);

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


                //Pega dados
                System.Xml.XmlNodeList xmlResults = xmlDoc.GetElementsByTagName("resposta");

                if (xmlResults.Count > 0)
                {
                    System.Xml.XmlNode xmlResult = xmlResults[0];

                    #region Seta propriedades

                    retorno.Descricao         = xmlResult["descricao"].InnerText;
                    retorno.ParcelasAssumidas = Akatus.Util.parseInt(xmlResult["parcelas_assumidas"].InnerText);

                    #endregion
                }
                else
                {
                    //Erro
                    throw new System.ArgumentException("O XML não retornou nós filhos", resultado);
                }


                //Pega dados
                System.Xml.XmlNodeList xmlParcelamento = xmlDoc.GetElementsByTagName("parcela");

                if (xmlParcelamento.Count > 0)
                {
                    foreach (System.Xml.XmlNode xmlResult in xmlParcelamento)
                    {
                        #region Seta propriedades

                        //Preenche dados
                        RetornoParcela retornoParcela = new RetornoParcela();
                        retornoParcela.Quantidade = Akatus.Util.parseInt(xmlResult["quantidade"].InnerText);
                        retornoParcela.Valor      = Akatus.Util.parseDecimal(xmlResult["valor"].InnerText);
                        retornoParcela.Total      = Akatus.Util.parseDecimal(xmlResult["total"].InnerText);

                        //Adiciona opção de parcelamento
                        retorno.Parcelas.Add(retornoParcela);

                        #endregion
                    }
                }
                else
                {
                    //Erro
                    throw new System.ArgumentException("O XML de parcelas 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 opções de parcelamento para o valor e meio de pagamentos informados
        /// </summary>
        /// <param name="amount">Valor.</param>
        /// <param name="payment_method">Meio de Pagamento.</param>
        public Akatus.ConsultaParcelamento.Retorno consultaParcelamento(decimal amount, Akatus.Enums.MeioDePagamento payment_method)
        {
            //Armazena dados de retorno
            Akatus.ConsultaParcelamento.Retorno retorno;

            #region Obtém XML

            //URL de Destino (https://www.akatus.com/api/v1/parcelamento/simulacao.xml?email=XXXXXXXXXXXXXXXXXX&amount=XXXXXX&payment_method=XXXXXXX&api_key=XXXXXXXXXXXXXXXXX)
            string urlDestino = string.Format("{0}?email={1}&amount={2}&payment_method={3}&api_key={4}", Akatus.Config.Ambiente == Akatus.Enums.Ambiente.producao ? urlProducao : urlTestes, Akatus.Config.Email, Akatus.Util.formatCurrency(amount), payment_method.ToString(), 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);

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

                //Pega dados
                System.Xml.XmlNodeList xmlResults = xmlDoc.GetElementsByTagName("resposta");

                if (xmlResults.Count > 0)
                {
                    System.Xml.XmlNode xmlResult = xmlResults[0];

                    #region Seta propriedades

                    retorno.Descricao = xmlResult["descricao"].InnerText;
                    retorno.ParcelasAssumidas = Akatus.Util.parseInt(xmlResult["parcelas_assumidas"].InnerText);

                    #endregion
                }
                else
                {
                    //Erro
                    throw new System.ArgumentException("O XML não retornou nós filhos", resultado);
                }

                //Pega dados
                System.Xml.XmlNodeList xmlParcelamento = xmlDoc.GetElementsByTagName("parcela");

                if (xmlParcelamento.Count > 0)
                {
                    foreach (System.Xml.XmlNode xmlResult in xmlParcelamento)
                    {
                        #region Seta propriedades

                        //Preenche dados
                        RetornoParcela retornoParcela = new RetornoParcela();
                        retornoParcela.Quantidade = Akatus.Util.parseInt(xmlResult["quantidade"].InnerText);
                        retornoParcela.Valor = Akatus.Util.parseDecimal(xmlResult["valor"].InnerText);
                        retornoParcela.Total = Akatus.Util.parseDecimal(xmlResult["total"].InnerText);

                        //Adiciona opção de parcelamento
                        retorno.Parcelas.Add(retornoParcela);

                        #endregion
                    }
                }
                else
                {
                    //Erro
                    throw new System.ArgumentException("O XML de parcelas não retornou nós filhos", resultado);
                }
            }
            else
            {
                //Erro
                throw new System.ArgumentException("Formato de XML inválido", resultado);
            }

            #endregion

            //Retorna resposta
            return retorno;
        }