public IHttpActionResult ObterTodos(String email, String ip, String hash, String tipo = "0") { var hashGerado = DomainUtil.GerarHashMD5(String.Concat(email, email, ip, ip)); if (tipo == "0") { if (hashGerado != hash) { var atividadeAtual = new Atividade() { Usuario = null, IP = ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.PossivelTentativaDeHack), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + email + " tentou acessar a consulta de serviço com a Hash errada." }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); return(Json(new { erro = "S", mensagem = "Hash incorreto, esta tentativa de consulta foi logada e enviada ao Administrador." })); } } List <ServicoVO> servicosVO = null; servicosVO = container.Resolve <IServicoRepository>().ObterTodosAtivos(); if (servicosVO != null) { var atividadeAtual = new Atividade() { Usuario = null, IP = ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaServico), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + email + " solicitou consulta de serviços." }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); } return(Json(new { erro = "N", itens = servicosVO != null ? servicosVO : new List <ServicoVO>() })); }
public IHttpActionResult ObterHistoricoAssinaturas(String email, String ip, String hash, String valor) { List <AssinaturaVO> assinaturas = null; try { if (!String.IsNullOrEmpty(email) && !String.IsNullOrEmpty(hash)) { if (hash != DomainUtil.GerarHashMD5(String.Concat(email, email, ip))) { return(null); } assinaturas = container.Resolve <IAssinaturaRepository>().ObterTodasAssinaturasVOPorEmail(email); var usuario = container.Resolve <IUsuarioRepository>().ObterPeloEmail(email); var atividadeAtual = new Atividade() { Usuario = usuario, IP = ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.HistoricoAssinatura), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + email + " solicitou histórico de assinaturas." }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); } } catch (Exception ex) { container.Resolve <ErroSistemaCRUDService>().Salvar(ex); String mensagem = !String.IsNullOrEmpty(ex.Message) ? ex.Message : String.Empty; String mensagemInterna = ex.InnerException != null && String.IsNullOrEmpty(ex.InnerException.Message) ? ex.InnerException.Message : String.Empty; String assunto = "Erro em ObterHistoricoAssinaturas na API da Subcode 23"; String mensagem2 = String.Format("Exceção: {0} \n Exceção interna: {1}, \n Data/Hora: {2} \n Email: {3}: ", mensagem, mensagemInterna, DateTime.Now, email); container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false); return(Json(new { erro = "S", mensagem = "Ocorreu um erro inesperado ao obter o histórico de assinaturas, não se preocupe, o suporte já foi acionado e vai resolver o problema e te informar assim que for verificado." })); } return(Json(assinaturas != null ? assinaturas : new List <AssinaturaVO>())); }
public IHttpActionResult ObterPessoaFisicaPeloCPF(RequisicaoConsultaVO requisicao) { Boolean usaCredito = false; var erro = new ErroConsulta(); erro.Cpfcnpj = requisicao.cpf; erro.Email = requisicao.email; erro.Aplicativo = requisicao.aplicativo; erro.Data = DateTime.Now; erro.Versao = requisicao.versao; erro.Ip = requisicao.ip; var consultaVO = new ConsultaCPFCNPJVO(); consultaVO.CPF = requisicao.cpf; consultaVO.Email = requisicao.email; consultaVO.Versao = requisicao.versao; consultaVO.IP = requisicao.ip; consultaVO.Hash = requisicao.hash; var hashGerado = DomainUtil.GerarHashMD5(String.Concat(requisicao.cpf, requisicao.email, requisicao.ip, requisicao.cpf)); consultaVO.Hash = requisicao.senha; var validacao = container.Resolve <ValidacaoConsultaCPFService>(); validacao.Validate(consultaVO); if (!validacao.TemErro) { var pessoaFisicaRepository = container.Resolve <IPessoaFisicaRepository>(); var pessoa = pessoaFisicaRepository.ObterUltimaConsultaPessoaFisicaPeloCPF(requisicao.cpf); var usuario = container.Resolve <IUsuarioRepository>().ObterPeloEmail(requisicao.email); if ((TipoAplicativoEnum)requisicao.aplicativo == TipoAplicativoEnum.Android) { var telefoneUsuarioRepo = container.Resolve <ITelefoneUsuarioRepository>(); var telefone = telefoneUsuarioRepo.ObterTelefonePorUsuarioEIMEI(usuario.Id, requisicao.imei); if (telefone != null && requisicao.imei != telefone.IMEI) { return(Json(new { erro = "S", mensagem = String.Format("Já existe um telefone com outro IMEI cadastrado para esta conta. Fabricante: {0} Modelo: {1} - Caso tenha trocado de aparelho contate o desenvolvedor para fazer a atualização de IMEI do seu cadastro.", telefone.Fabricante, telefone.Modelo) })); } else { TelefoneUsuario tel = new TelefoneUsuario(); tel.DataCadastro = DateTime.Now; tel.Fabricante = requisicao.fabricante; tel.IMEI = requisicao.imei; tel.Modelo = requisicao.modelo; tel.Numero = requisicao.numero; tel.Operadora = requisicao.operadora; tel.Usuario = usuario; } } if (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome) && pessoa.Vitalicio != "S") { if (pessoa.DataCadastro.Date.AddDays(+90) < DateTime.Now.Date) { ILimiteUsuarioRepository limiteRepository = container.Resolve <ILimiteUsuarioRepository>(); var limite = limiteRepository.ObterLimiteUsuarioPeloEmail(requisicao.email); if (limite != null) { ICreditoRepository creditoRepo = container.Resolve <ICreditoRepository>(); var credito = creditoRepo.ObterCreditoPeloUsuario(Convert.ToInt32(usuario.Id)); if (credito == null) { if (limite.Quantidade >= limite.LimiteConsultas && usuario.Especial != "S") { return(Json(new { erro = "S", mensagem = String.Format("O seu usuário já atingiu o limite diário de consultas, que são {0} consultas, caso queira fazer novas consultas aguarde até o próximo dia ou adquira um pacote de consultas avulsas.", limite.LimiteConsultas) })); } } else { usaCredito = true; } } else { usaCredito = true; } pessoa = pessoaFisicaRepository.ObterNovaPessoaPeloCPF(requisicao.cpf); if (pessoa.Id == 0) { pessoa.Id = (Int32?)null; } var logConsulta = new LogConsulta(); logConsulta.Origem = Convert.ToInt32(OrigemConsultaEnum.SeekLoc); logConsulta.Tipo = Convert.ToInt32(TipoConsultaEnum.CPF); logConsulta.Usuario = usuario; logConsulta.CPFCNPJ = requisicao.cpf; logConsulta.DataCadastro = DateTime.Now; logConsulta.TemResultado = (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome)) ? "S" : "N"; container.Resolve <LogConsultaCRUDService>().Salvar(logConsulta); if (pessoa != null) { var atividadeAtual = new Atividade() { Usuario = usuario, IP = requisicao.ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaPessoaFisicaCPF), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + requisicao.email + " fez uma pesquisa de CPF com o número " + requisicao.cpf }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); if (usaCredito) { container.Resolve <CreditoCRUDService>().Remover(Convert.ToInt32(usuario.Id), 1); } pessoa.UsuarioConsulta = usuario; pessoa.CPF = requisicao.cpf; pessoa.DataCadastro = DateTime.Now; container.Resolve <PessoaFisica2CRUDService>().Salvar(pessoa); pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null); if (pessoa.Veiculos != null) { pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel)); pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto = DomainUtil.ObterEspecieVeiculoTexto(x.Especie)); pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto = DomainUtil.ObterTipoVeiculoTexto(x.Tipo)); } return(Json(new { erro = "N", Nome = pessoa.Nome, CPF = pessoa.CPF, DataNascimento = pessoa.DataNascimento, NomeMae = pessoa.NomeMae, Enderecos = pessoa.Enderecos, Veiculos = pessoa.Veiculos, Emails = pessoa.Emails, Empregos = pessoa.Empregos, Vizinhos = pessoa.Vizinhos, Parentes = pessoa.Parentes, Telefones = pessoa.Telefones, Importado = pessoa.Importado, Hash = Guid.NewGuid().ToString(), HoraConsulta = DateTime.Now.ToString("HH:mm:ss"), DataConsulta = DateTime.Now.ToString("dd/MM/yyyy"), NovaAPI = pessoa.APISeekLoc })); } } else { pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null); if (pessoa.Veiculos != null) { pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel)); pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto = DomainUtil.ObterEspecieVeiculoTexto(x.Especie)); pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto = DomainUtil.ObterTipoVeiculoTexto(x.Tipo)); } return(Json(new { erro = "N", Nome = pessoa.Nome, CPF = pessoa.CPF, DataNascimento = pessoa.DataNascimento, NomeMae = pessoa.NomeMae, Enderecos = pessoa.Enderecos, Veiculos = pessoa.Veiculos, Emails = pessoa.Emails, Empregos = pessoa.Empregos, Vizinhos = pessoa.Vizinhos, Parentes = pessoa.Parentes, Telefones = pessoa.Telefones, Importado = pessoa.Importado, Hash = Guid.NewGuid().ToString(), HoraConsulta = DateTime.Now.ToString("HH:mm:ss"), DataConsulta = DateTime.Now.ToString("dd/MM/yyyy") })); } } else { ILimiteUsuarioRepository limiteRepository = container.Resolve <ILimiteUsuarioRepository>(); var limite = limiteRepository.ObterLimiteUsuarioPeloEmail(requisicao.email); if (limite != null) { ICreditoRepository creditoRepo = container.Resolve <ICreditoRepository>(); var credito = creditoRepo.ObterCreditoPeloUsuario(Convert.ToInt32(usuario.Id)); if (credito == null) { if (limite.Quantidade >= limite.LimiteConsultas && usuario.Especial != "S") { return(Json(new { erro = "S", mensagem = String.Format("O seu usuário já atingiu o limite diário de consultas, que são {0} consultas, caso queira fazer novas consultas aguarde até o próximo dia ou adquira um pacote de consultas avulsas.", limite.LimiteConsultas) })); } } else { usaCredito = true; } } else { usaCredito = true; } pessoa = pessoaFisicaRepository.ObterNovaPessoaPeloCPF(requisicao.cpf); if (pessoa != null) { if (usaCredito) { container.Resolve <CreditoCRUDService>().Remover(Convert.ToInt32(usuario.Id), 1); } } var logConsulta = new LogConsulta(); logConsulta.Origem = Convert.ToInt32(OrigemConsultaEnum.SeekLoc); logConsulta.Tipo = Convert.ToInt32(TipoConsultaEnum.CPF); logConsulta.Usuario = usuario; logConsulta.CPFCNPJ = requisicao.cpf; logConsulta.DataCadastro = DateTime.Now; logConsulta.TemResultado = (pessoa != null && !String.IsNullOrEmpty(pessoa.Nome)) ? "S" : "N"; container.Resolve <LogConsultaCRUDService>().Salvar(logConsulta); if (pessoa != null && String.IsNullOrEmpty(pessoa.Mensagem)) { var atividadeAtual = new Atividade() { Usuario = usuario, IP = requisicao.ip, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.ConsultaPessoaFisicaCPF), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = "O usuário com o e-mail " + requisicao.email + " fez uma pesquisa de CPF com o número " + requisicao.cpf }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); pessoa.UsuarioConsulta = usuario; pessoa.CPF = requisicao.cpf; pessoa.Hash = requisicao.hash; pessoa.DataCadastro = DateTime.Now; container.Resolve <PessoaFisica2CRUDService>().Salvar(pessoa); pessoa.Enderecos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Veiculos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Emails.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Empregos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Vizinhos.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Parentes.ToList().ForEach(x => x.PessoaFisica2 = null); pessoa.Telefones.ToList().ForEach(x => x.PessoaFisica2 = null); if (pessoa.Veiculos != null) { pessoa.Veiculos.ToList().ForEach(x => x.CombustivelTexto = DomainUtil.ObterCombustivelTexto(x.Combustivel)); pessoa.Veiculos.ToList().ForEach(x => x.EspecieTexto = DomainUtil.ObterEspecieVeiculoTexto(x.Especie)); pessoa.Veiculos.ToList().ForEach(x => x.TipoTexto = DomainUtil.ObterTipoVeiculoTexto(x.Tipo)); } return(Json(new { erro = "N", Nome = pessoa.Nome, CPF = pessoa.CPF, DataNascimento = pessoa.DataNascimento, NomeMae = pessoa.NomeMae, Enderecos = pessoa.Enderecos, Veiculos = pessoa.Veiculos, Emails = pessoa.Emails, Empregos = pessoa.Empregos, Vizinhos = pessoa.Vizinhos, Parentes = pessoa.Parentes, Telefones = pessoa.Telefones, Importado = pessoa.Importado, Hash = Guid.NewGuid().ToString(), HoraConsulta = DateTime.Now.ToString("HH:mm:ss"), DataConsulta = DateTime.Now.ToString("dd/MM/yyyy") })); } else { return(Json(new { erro = "S", mensagem = "Sem resultado para este CPF." })); } } } else { return(Json(new { erro = "S", mensagem = validacao.erroVO.mensagem })); } return(Json(new { erro = "S", mensagem = "Sem resultado" })); }
public IHttpActionResult ObterURLPagamento(String email, String servico, String ip, String hash, String emitenota, String cpfnota) { var hashGerado = DomainUtil.GerarHashMD5(String.Concat(email, ip, servico)); String pedidoGerado = String.Empty; String nomeComprador = String.Empty; String codigoServico = String.Empty; String descricaoServico = String.Empty; String valorServico = String.Empty; Usuario usuarioAtual = null; Boolean sandbox = true; String ArquivoConfiguracaoPagSeguro = @"C:\temp\PagSeguroConfig.xml"; if (!File.Exists(ArquivoConfiguracaoPagSeguro)) { return(Json(new { erro = "S", mensagem = "Arquivo de configuração do pagamento com pagseguro não foi encontrado." })); } try { var configuracaoRepo = container.Resolve <IConfiguracaoRepository>(); var usuarioRepo = container.Resolve <IUsuarioRepository>(); var servicoRepo = container.Resolve <IServicoRepository>(); var usuario = usuarioRepo.ObterPeloEmail(email); var servicoBD = servicoRepo.ObterPeloCodigo(servico); var configuracao = configuracaoRepo.GetById(1); if (configuracao != null) { sandbox = configuracao.AmbienteProducao == "N"; ArquivoConfiguracaoPagSeguro = configuracao.ArquivoConfiguracaoPagSeguro; } if (usuario != null) { nomeComprador = usuario.Nome; usuarioAtual = usuario; var pedidoRepo = container.Resolve <IPedidoRepository>(); var pedido = new Pedido(); pedido.Usuario = usuario; pedido.IP = ip; pedido.Status = (Int32)StatusPedido.Pendente; pedido.Data = DateTime.Now; pedido.CPFNF = cpfnota; pedido.EmiteNF = emitenota; pedido.FormaPagamento = (Int32)FormaPagamento.PagSeguro; if (servicoBD != null) { codigoServico = servicoBD.Codigo; descricaoServico = servicoBD.DescricaoCurta; valorServico = String.Format("{0:0.00}", servicoBD.Valor); pedido.Servico = servicoBD; pedidoRepo.Save(pedido); pedidoGerado = pedido.Id.ToString(); } else { return(Json(new { erro = "S", mensagem = "Código do serviço não cadastrado." })); } } else { return(Json(new { erro = "S", mensagem = "Usuário não cadastrado." })); } } catch (Exception ex) { String debug = ex.Message; return(Json(new { erro = "S", mensagem = "Ocorreu um erro inesperado e não foi possível gerar o seu pedido, por gentileza informe ao desenvolvedor." })); } PagSeguroConfiguration.UrlXmlConfiguration = ArquivoConfiguracaoPagSeguro; EnvironmentConfiguration.ChangeEnvironment(sandbox); PaymentRequest payment = new PaymentRequest(); payment.Items.Add(new Item(codigoServico, descricaoServico, 1, Convert.ToDecimal(valorServico))); payment.Sender = new Sender(nomeComprador, email, null); payment.Shipping = new Shipping(); payment.Shipping.ShippingType = ShippingType.NotSpecified; payment.Currency = Currency.Brl; payment.Reference = pedidoGerado; try { AccountCredentials credentials = PagSeguroConfiguration.Credentials(sandbox); Uri paymentRedirectUri = payment.Register(credentials); var atividadeAtual = new Atividade() { Usuario = usuarioAtual, Data = DateTime.Now, TipoAtividade = Convert.ToInt32(TipoAtividade.NovaCompra), Origem = Convert.ToInt32(OrigemAcesso.Web), Descricao = String.Format("O usuário com o e-mail {0} fez o pedido {1} e gerou a url {2} para checkout no pagseguro", email, pedidoGerado, paymentRedirectUri.AbsoluteUri) }; container.Resolve <AtividadeCRUDService>().Salvar(atividadeAtual); return(Json(new { erro = "N", url = paymentRedirectUri.AbsoluteUri })); } catch (PagSeguroServiceException ex) { String mensagem = String.Empty; String assunto = "Erro de PagSeguroServiceException no método ObterURLPagamento - " + email; if (ex.Errors.Count > 0) { mensagem = ex.Errors[0].Code + " - " + ex.Errors[0].Message; } String mensagem2 = String.Format("Ocorreu um erro - Erro do pagseguro {0} - Data: {1}", mensagem, DateTime.Now.ToString("dd/MM/yyyy - HH:mm:ss")); container.Resolve <IEmailService>().EnviarEmail(Constantes.EMAIL_DESTINATARIO, Constantes.EMAIL_REMETENTE, "Suporte ", assunto, mensagem2, false); String texto = ex.Message; return(Json(new { erro = "S", mensagem = texto }));; } }