コード例 #1
0
        public Aluno_pgto TratarRetorno(Transaction transaction)
        {
            Aluno_pgto ap = new Aluno_pgtoDB().Buscar(Convert.ToInt32(transaction.Reference.Replace("AP", "")));

            int status = transaction.TransactionStatus;

            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Initiated)
            //    status = 0;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.WaitingPayment)
            //    status = 1;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.InAnalysis)
            //    status = 2;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Paid)
            //    status = 3;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Available)
            //    status = 4;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.InDispute)
            //    status = 5;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Refunded)
            //    status = 6;
            //if (transaction.TransactionStatus == Uol.PagSeguro.Enums.TransactionStatus.Cancelled)
            //    status = 7;

            Aluno_pgto_Transacao apt = new Aluno_pgto_TransacaoDB().Buscar(ap, transaction.Code, status);

            if (apt == null)
            {
                apt = new Aluno_pgto_Transacao()
                {
                    aluno_pgto = ap,
                    code       = transaction.Code,
                    data       = DateTime.Now,
                    status     = status
                };
                apt.Salvar();
            }

            if (ap != null)
            {
                ap.aluno = new AlunoDB().Buscar(ap.aluno.codigo);
                //salva o code no Aluno_MedTV

                //msg do status
                apt.msg = TransacaoMsg(status);

                //3	Paga
                if (transaction.TransactionStatus == 3)
                {
                    //se não estiver ativo, ativa o usuário
                    if (ap.situacao != 2)
                    {
                        ap.Ativar();
                    }
                }
                //4 Disponivel
                if (transaction.TransactionStatus == 4)
                {
                    LancaEntrada(ap.aluno, ap.curso, apt.data);
                }
                //5   Em disputa
                if (transaction.TransactionStatus == 5)
                {
                    //se estiver ativo, desativa o usuário
                    if (ap.situacao == 2)
                    {
                        ap.Desativar();
                    }
                    new Envio_emailDB().Salvar(new Envio_email()
                    {
                        data    = DateTime.Now,
                        assunto = "Cenbrap alterações de pagamento",
                        texto   = "Alterações no pagamento.<BR>Aluno: " + ap.aluno.nome + "(" + ap.aluno.cpf + ")<BR>Msg: " + apt.msg,
                        para    = emailNotificacaoPagamento
                    });
                }

                apt.data = DateTime.Now;
                apt.Alterar();
            }
            return(ap);
        }