Пример #1
0
        private static HttpResponseMessage EnviarMensagemCliente(string nomeFeirante, string numeroCliente)
        {
            var mensagem = $"Pedido recebido, aguarde o Feirante {nomeFeirante} entrar em contato";
            var sender   = new SenderMessageRequest();

            sender.From     = "furry-time";
            sender.To       = numeroCliente;
            sender.Contents = new List <Models.SendMessageZenvia.Content>();
            sender.Contents.Add(new Models.SendMessageZenvia.Content {
                Type = "text", Text = mensagem, Payload = string.Empty
            });


            var json = JsonConvert.SerializeObject(sender);
            var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, $"https://api.zenvia.com/v1/channels/whatsapp/messages");

            httpRequestMessage.Headers.Add("X-API-TOKEN", "sxyGdagDRB3AFLl51p_y5gGzXnIyx2w4qmzR");
            httpRequestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");

            var httpClient = new HttpClient();

            var response = httpClient.SendAsync(httpRequestMessage).Result;

            return(response);
        }
Пример #2
0
        private static HttpResponseMessage EnviarMensagemFeirante(Pedido pedido, Cliente cliente, Feirante feirante, List <FeiranteProduto> feiranteProdutos)
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendLine($"Olá {feirante.Nome}");
            builder.AppendLine($"{cliente.Nome} tem interesse nos produtos:");
            builder.AppendLine(string.Empty);

            foreach (var feiranteProduto in feiranteProdutos)
            {
                builder.AppendLine($"{feiranteProduto.Produto.Nome}, QTD:{feiranteProduto.ProdutoId}");
            }

            var celularClienteMask  = long.Parse(cliente.Celular).ToString(@"00 (00) 00000-0000");
            var valorTotalFormatado = string.Format(CultureInfo.GetCultureInfo("pt-BR"), "{0:C}", pedido.Total);

            builder.AppendLine(string.Empty);
            builder.AppendLine($"Total do pedido: {valorTotalFormatado}");
            builder.AppendLine(string.Empty);
            builder.AppendLine($"Entre em contato com o cliente através do número:{celularClienteMask}");

            var sender = new SenderMessageRequest();

            sender.From     = "furry-time";
            sender.To       = feirante.Celular;
            sender.Contents = new List <Models.SendMessageZenvia.Content>();
            sender.Contents.Add(new Models.SendMessageZenvia.Content {
                Type = "text", Text = builder.ToString(), Payload = string.Empty
            });


            var json = JsonConvert.SerializeObject(sender);
            var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, $"https://api.zenvia.com/v1/channels/whatsapp/messages");

            httpRequestMessage.Headers.Add("X-API-TOKEN", "sxyGdagDRB3AFLl51p_y5gGzXnIyx2w4qmzR");
            httpRequestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");

            var httpClient = new HttpClient();

            var response = httpClient.SendAsync(httpRequestMessage).Result;

            return(response);
        }
Пример #3
0
        public IActionResult MensagemEnviada([FromBody] EventHook eventHook)
        {
            var jsonEventHook = JsonConvert.SerializeObject(eventHook);

            _logger.LogInformation($"Acessando POST mensagem-enviada {nameof(ClienteController)} {nameof(eventHook)}: {jsonEventHook}");

            foreach (var conteudo in eventHook.Message.Contents.Where(x => x.Type == "text"))
            {
                var mensagem = new MensagemZAP
                {
                    From            = eventHook.Message.From,
                    Channel         = eventHook.Message.Channel,
                    Direction       = eventHook.Message.Direction,
                    To              = eventHook.Message.To,
                    Conteudo        = conteudo.Text,
                    VisitorFullName = eventHook.Message.Visitor.Name,
                    Data            = DateTime.Now,
                };

                _context.MensagemZAP.Add(mensagem);


                var cliente = _context.Cliente.Where(x => x.Celular == mensagem.From).FirstOrDefault();

                if (cliente == null)
                {
                    cliente         = new Cliente();
                    cliente.Celular = mensagem.From;
                    cliente.Nome    = mensagem.VisitorFullName;

                    _context.Cliente.Add(cliente);
                }

                _context.SaveChanges();

                if (mensagem.Conteudo.ToLower().Contains("oi") && mensagem.Direction == "IN")
                {
                    Autenticacao autenticacao = new Autenticacao();
                    autenticacao.ClienteId = cliente.ClienteId;
                    autenticacao.Data      = DateTime.Now;
                    autenticacao.GerarCodigo();

                    _context.Autenticacao.Add(autenticacao);
                    _context.SaveChanges();

                    var mensagemAutenticacao = $"Digite:{autenticacao.Codigo} para completar a autenticação:";


                    var sender = new SenderMessageRequest();
                    sender.From     = "furry-time";
                    sender.To       = cliente.Celular;
                    sender.Contents = new List <Models.SendMessageZenvia.Content>();
                    sender.Contents.Add(new Models.SendMessageZenvia.Content {
                        Type = "text", Text = mensagemAutenticacao, Payload = string.Empty
                    });


                    var json = JsonConvert.SerializeObject(sender);
                    var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, $"https://api.zenvia.com/v1/channels/whatsapp/messages");
                    httpRequestMessage.Headers.Add("X-API-TOKEN", "sxyGdagDRB3AFLl51p_y5gGzXnIyx2w4qmzR");
                    httpRequestMessage.Content = new StringContent(json, Encoding.UTF8, "application/json");

                    var httpClient = new HttpClient();
                    var response   = httpClient.SendAsync(httpRequestMessage).Result;
                }
            }

            return(Ok());
        }