public async Task <IActionResult> NotificacaoEspecificao(NotificacaoDto notificacaoDto) { try { //Busca os dados dados da transacao var dadosConfigPagamento = await _meioPagamentoRepository.Buscar(x => x.Status.Equals("A")); var emailPagSeguro = dadosConfigPagamento.FirstOrDefault().Email; var tokenPagSeguro = dadosConfigPagamento.FirstOrDefault().Token; string urlPagseguro = $"{urlWsPagueSeguro}/v3/transactions/notifications/"; var apiPagSeguro = new PagSeguroAPI(); var retornoApiPagSeguro = apiPagSeguro.ConsultaPorCodigoNotificacao(emailPagSeguro, tokenPagSeguro, urlPagseguro, notificacaoDto.NotificationCode); return(Response(retornoApiPagSeguro)); } catch (Exception ex) { return(ResponseErro(ex)); } }
public async Task <IActionResult> Notificacoes([FromForm] NotificacaoDto notificacaoDto) { try { //Inicia com log var logNotificacoes = new LogNotificacao() { Data = DateTime.Now, NotificationCode = notificacaoDto.NotificationCode, NotificationType = notificacaoDto.NotificationType }; var response = await _logNotificacoesRepository.Adicionar(logNotificacoes); //Busca os dados dados da transacao var dadosConfigPagamento = await _meioPagamentoRepository.Buscar(x => x.Status.Equals("A")); var emailPagSeguro = dadosConfigPagamento.FirstOrDefault().Email; var tokenPagSeguro = dadosConfigPagamento.FirstOrDefault().Token; string urlPagseguro = $"{urlWsPagueSeguro}/v3/transactions/notifications/"; var apiPagSeguro = new PagSeguroAPI(); var retornoApiPagSeguro = apiPagSeguro.ConsultaPorCodigoNotificacao(emailPagSeguro, tokenPagSeguro, urlPagseguro, notificacaoDto.NotificationCode); if (!retornoApiPagSeguro.Status.Equals(Convert.ToInt32(StatusTransacaoEnum.Paga)) && !retornoApiPagSeguro.Status.Equals(Convert.ToInt32(StatusTransacaoEnum.Disponivel))) { return(Response("Não foi possível fazer operacao", false)); } var dadosInscricao = await _inscricaoUsuarioRepository.Buscar(x => x.Id.Equals(Convert.ToInt32(retornoApiPagSeguro.Reference))); var buscaDadosInscricao = dadosInscricao.FirstOrDefault(); //Atualiza o status da isncricao if (!buscaDadosInscricao.Status.Equals("AG")) { return(Response("Não foi possível fazer operacao", false)); } buscaDadosInscricao.Status = "CO"; buscaDadosInscricao.DataConfirmacao = DateTime.Now; buscaDadosInscricao.ProcessoInscricao = null; buscaDadosInscricao.TransacaoInscricoes = null; buscaDadosInscricao.Usuario = null; var atualizaInscricao = await _inscricaoUsuarioRepository.Atualizar(buscaDadosInscricao); if (!atualizaInscricao) { return(Response("Erro ao atualizar inscrição", false)); } return(Response(buscaDadosInscricao)); } catch (Exception ex) { return(ResponseErro(ex)); } }
public async Task <IActionResult> Gerar(int id) { try { var inscricao = await _inscricaoUsuarioRepository.ObterPorId(id); if (inscricao == null) { return(Response("Inscrição não localizada!", false)); } var dadosConfigPagamento = await _meioPagamentoRepository.Buscar(x => x.Status.Equals("A")); var dadosCurso = await _cursoRepository.ObterPorId(inscricao.ProcessoInscricao.CursoId); var emailPagSeguro = dadosConfigPagamento.FirstOrDefault().Email; var tokenPagSeguro = dadosConfigPagamento.FirstOrDefault().Token; string urlCheckout = $"{urlWsPagueSeguro}/v2/checkout"; var listaItensPedido = new List <PagSeguroItemDTO> { new PagSeguroItemDTO { itemId = id.ToString(), itemQuantity = "1", itemDescription = $"Inscrição para o curso: {dadosCurso.Titulo}", itemAmount = inscricao.ProcessoInscricao.Valor.ToString("F").Replace(",", "."), itemWeight = "200" } }; if (string.IsNullOrEmpty(inscricao.Usuario.Email)) { inscricao.Usuario.Email = "*****@*****.**"; } var dadosComprador = new PagSeguroCompradorDTO { SenderName = inscricao.Usuario.Nome.Length > 50 ? inscricao.Usuario.Nome.Substring(0, 50).Trim() : inscricao.Usuario.Nome.Trim(), senderEmail = inscricao.Usuario.Email.Length > 60 ? inscricao.Usuario.Nome.Substring(0, 60).ToLower().Trim() : inscricao.Usuario.Email.ToLower().Trim(), senderPhone = inscricao.Usuario.TelefoneCelular.Length > 9 ? inscricao.Usuario.TelefoneCelular.Substring(0, 9).Trim() : inscricao.Usuario.TelefoneCelular.Trim(), SenderAreaCode = "62" }; var referencia = id.ToString(); var apiPagSeguro = new PagSeguroAPI(); //Retira os espaçõs entre o nome Regex regex = new Regex(@"\s{2,}"); dadosComprador.SenderName = regex.Replace(dadosComprador.SenderName, " "); dadosComprador.SenderName = dadosComprador.SenderName.Replace("\0", ""); var retornoApiPagSeguro = apiPagSeguro.Checkout(emailPagSeguro, tokenPagSeguro, urlCheckout, listaItensPedido, dadosComprador, referencia); if (!string.IsNullOrEmpty(retornoApiPagSeguro)) { var transacao = new TransacaoInscricao() { Codigo = retornoApiPagSeguro, InscricaoUsuarioId = id }; var registraTransacao = await _transacaoInscricaoRepository.Adicionar(transacao); if (!registraTransacao) { return(Response("Erro na transação de pagamento", false)); } } else { return(Response("Erro ao fazer a comunicação de pagamento", false)); } var paymentUrl = string.Concat($"{urlSitePagueSeguro}/v2/checkout/payment.html?code=", retornoApiPagSeguro); return(Response(paymentUrl)); } catch (Exception ex) { return(ResponseErro(ex)); } }