/// <summary>
        /// Processa notificação da transação
        /// </summary>
        /// <param name="token">Tóken do NIP usado para validar se o NIP foi realmente enviado pela Akatus.</param>
        /// <param name="transacao_id">ID da transação na Akatus.</param>
        /// <param name="status">Status do pagamento.</param>
        /// <param name="referencia">ID da transação em sua loja (Caso tenha sido enviado)</param>
        public static Akatus.NotificacaoPagamento.Retorno processaRetorno(string token, string transacao_id, string status, string referencia)
        {
            //Armazena dados de retorno
            Akatus.NotificacaoPagamento.Retorno retorno;

            //Verifica se o 'Tóken', 'Id da transação' e 'Status' foram postados (o campo 'referencia' é opcional)
            if (!string.IsNullOrEmpty(token) && !string.IsNullOrEmpty(transacao_id) && !string.IsNullOrEmpty(status))
            {
                //Verifica se o Tóken está correto
                if (token == Akatus.Config.tokenNIP)
                {
                    #region Se o Tóken postado é o mesmo Tóken que está configurado em sua conta

                    //Preenche dados de retorno
                    retorno = new Akatus.NotificacaoPagamento.Retorno();
                    retorno.TransacaoId = transacao_id;
                    retorno.Referencia = referencia;

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

                    #endregion
                }
                else
                {
                    #region Se o Tóken postado é diferente do Tóken que está configurado em sua conta

                    //Erro
                    throw new System.ArgumentException("Tóken inválido", token);

                    #endregion
                }
            }
            else
            {
                #region Se foram postados parâmetros

                //Erro
                throw new System.ArgumentException("Não foram postados parâmetros");

                #endregion
            }

            return retorno;
        }
Beispiel #2
0
        /// <summary>
        /// Processa notificação da transação
        /// </summary>
        /// <param name="token">Tóken do NIP usado para validar se o NIP foi realmente enviado pela Akatus.</param>
        /// <param name="transacao_id">ID da transação na Akatus.</param>
        /// <param name="status">Status do pagamento.</param>
        /// <param name="referencia">ID da transação em sua loja (Caso tenha sido enviado)</param>
        public static Akatus.NotificacaoPagamento.Retorno processaRetorno(string token, string transacao_id, string status, string referencia)
        {
            //Armazena dados de retorno
            Akatus.NotificacaoPagamento.Retorno retorno;

            //Verifica se o 'Tóken', 'Id da transação' e 'Status' foram postados (o campo 'referencia' é opcional)
            if (!string.IsNullOrEmpty(token) && !string.IsNullOrEmpty(transacao_id) && !string.IsNullOrEmpty(status))
            {
                //Verifica se o Tóken está correto
                if (token == Akatus.Config.tokenNIP)
                {
                    #region Se o Tóken postado é o mesmo Tóken que está configurado em sua conta

                    //Preenche dados de retorno
                    retorno             = new Akatus.NotificacaoPagamento.Retorno();
                    retorno.TransacaoId = transacao_id;
                    retorno.Referencia  = referencia;

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

                    #endregion
                }
                else
                {
                    #region Se o Tóken postado é diferente do Tóken que está configurado em sua conta

                    //Erro
                    throw new System.ArgumentException("Tóken inválido", token);

                    #endregion
                }
            }
            else
            {
                #region Se foram postados parâmetros

                //Erro
                throw new System.ArgumentException("Não foram postados parâmetros");

                #endregion
            }

            return(retorno);
        }