示例#1
0
        public Aluno_MedTV AssinaturaTratarRetorno(PreApprovalTransaction transaction)
        {
            Aluno_MedTV am = new Aluno_MedTVDB().Buscar(Convert.ToInt32(transaction.Reference));

            if (am != null)
            {
                am.aluno = new AlunoDB().Buscar(am.aluno.codigo);
                //salva o code no Aluno_MedTV
                am.codePagseguro = transaction.Code;
                am.msgPagseguro  = AssinaturaMsg(transaction.Status);

                DateTime dateTime = DateTime.UtcNow;
                dateTime = dateTime.AddSeconds(-dateTime.Second);
                if (dateTime.Minute % 2 != 0)
                {
                    dateTime = dateTime.AddMinutes(1);
                }

                if (!new Aluno_MedTV_NotificacaoDB().Existe(am, dateTime))
                {
                    new Aluno_MedTV_Notificacao(am, dateTime, transaction.Status, am.msgPagseguro).Salvar();
                }

                //ACTIVE
                if (transaction.Status == "ACTIVE")
                {
                    if (!am.ativo)
                    {
                        am.Ativar();
                    }
                    new Envio_emailDB().Salvar(new Envio_email()
                    {
                        data    = DateTime.Now,
                        assunto = "MedTV Assinatura ativada",
                        texto   = "Aluno: " + am.aluno.nome + "(" + am.aluno.cpf + ")<BR>Msg: " + am.msgPagseguro,
                        para    = emailNotificacaoAtivado
                    });

                    //LancaEntrada(am.aluno);
                }
                //CANCELLED ou CANCELLED_BY_RECEIVER ou CANCELLED_BY_SENDER ou EXPIRED
                if (transaction.Status == "CANCELLED" || transaction.Status == "CANCELLED_BY_RECEIVER" || transaction.Status == "CANCELLED_BY_SENDER" || transaction.Status == "EXPIRED")
                {
                    if (am.ativo)
                    {
                        am.Desativar();
                    }

                    new Envio_emailDB().Salvar(new Envio_email()
                    {
                        data    = DateTime.Now,
                        assunto = "MedTV Assinatura cancelada",
                        texto   = "Aluno: " + am.aluno.nome + "(" + am.aluno.cpf + ")<BR>Msg: " + am.msgPagseguro,
                        para    = emailNotificacaoPagamento
                    });
                }
                am.Alterar();
            }
            return(am);
        }
示例#2
0
        public Aluno_MedTV TratarRetorno(Transaction transaction)
        {
            Aluno_MedTV am = new Aluno_MedTVDB().Buscar(Convert.ToInt32(transaction.Reference));

            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_MedTV_Transacao amt = new Aluno_MedTV_TransacaoDB().Buscar(am, transaction.Code, status);

            if (amt == null)
            {
                amt = new Aluno_MedTV_Transacao()
                {
                    aluno_medTV_id = am,
                    code           = transaction.Code,
                    data           = DateTime.Now,
                    status         = status
                };
                amt.Salvar();
            }

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

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

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

                amt.data = DateTime.Now;
                amt.Alterar();
            }
            return(am);
        }