private void enviarEmail(PAGAMENTOS_MOBVENDAS pag, UsuarioSimples usu) { var parametrosEmail = db.PARAM_MOBVENDAS.ToList(); int port = Convert.ToInt32(parametrosEmail.Where(a => a.CAMPO.Contains("PORT")).FirstOrDefault().VALOR); string userName = parametrosEmail.Where(a => a.CAMPO.Contains("USERNAME")).FirstOrDefault().VALOR; string senha = parametrosEmail.Where(a => a.CAMPO.Contains("PASSWORD")).FirstOrDefault().VALOR; string host = parametrosEmail.Where(a => a.CAMPO.Contains("HOST")).FirstOrDefault().VALOR; string subject = "Comprovante Pagamento Mob Vendas"; string FromMail = "*****@*****.**"; string emailTo = usu.email; string body = montarBody(usu, pag); MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient(host); mail.IsBodyHtml = true; mail.From = new MailAddress(FromMail); mail.To.Add(emailTo); mail.Subject = subject; mail.Body = body; SmtpServer.Port = port; SmtpServer.Credentials = new System.Net.NetworkCredential(userName, senha); SmtpServer.EnableSsl = false; SmtpServer.Send(mail); }
private string montarBody(UsuarioSimples usu, PAGAMENTOS_MOBVENDAS pag) { string htmlPagamento = "<html>" + "<head>" + "<title>Corpo Email</title>" + "</head>" + "<style>" + "</style>" + "<body>" + "<div style=\"text-align: center; background-color: #001346; height: 160px; padding: 30px;\">" + "<img src=\"http://cpro42174.publiccloud.com.br/mobvendas/Imagens/logo_mobvendas.png\" width=\"120\" height=\"120\" alt=\"logo_mobvendas\"><br>" + "<span style=\"color: white; font-size: 34px;\">MOB VENDAS</span>" + "</div>" + "<div style=\"margin-top: 50px; margin-left: 50px; margin-right: 50px; font-size: 25px;\">" + "<span>Olá " + usu.nome + ",</span><br><br>" + "<span>Confirmamos o pagamento de sua assinatura mensal do Plano Premium válida de " + DateTime.Now.Date.ToString("dd/MM/yyyy") + " à " + Convert.ToDateTime(usu.dataProxPag).ToString("dd/MM/yyyy") + "</span><br><br>" + "<strong>Emissão: </strong><span>" + DateTime.Now.Date.ToString("dd/MM/yyyy") + "</span><div style=\"float: right;\"><strong >Recebido em: </strong>" + DateTime.Now.Date.ToString("dd/MM/yyyy") + "</div><br><br>" + "<strong>Método de Pagamento: </strong> <span>Cartão de Crédito " + pag.Bandeira + "</span><br><br>" + "<strong>Número do Pedido: </strong><span> " + pag.MerchantOrderId + "</span><br><br><br>" + "</div>" + "<div style=\"text-align: center; color: #d6951d; font-size: 25px;\" >" + "<span>Para dúvidas e sugestões acesse nosso chat no app!</span>" + "</div>" + "<div style=\"margin-top: 30px;text-align: center; color: #8b838a; font-size: 25px;\" >" + "<span>Atenção! E-mail enviado automaticamente. Não responda.</span>" + "</div>" + "</body>" + "</html>"; return(htmlPagamento); }
public object RealizarPagamento(RequisicaoPagamento p) { iniRequisicao(); Recorrencia requisicao = new Recorrencia(); requisicao.Customer = new Customer(); requisicao.Payment = new Payment(); requisicao.Payment.RecurrentPayment = new RecurrentPayment(); requisicao.Payment.CreditCard = new CreditCard(); requisicao.MerchantOrderId = DateTime.Now.ToString("ddMMyyyyHHmmss") + p.id_usuario_mobvendas.ToString(); requisicao.Customer.Name = p.name; requisicao.Payment.Type = "CreditCard"; requisicao.Payment.Amount = Convert.ToDecimal(p.amount.Replace(".", ",")) * 100; requisicao.Payment.Installments = 1; requisicao.Payment.SoftDescriptor = "MobVendas"; requisicao.Payment.RecurrentPayment.AuthorizeNow = true; requisicao.Payment.CreditCard.CardNumber = p.cardnumber; requisicao.Payment.CreditCard.Holder = p.name; requisicao.Payment.CreditCard.ExpirationDate = p.expirationdate; requisicao.Payment.CreditCard.SecurityCode = p.securityCode; requisicao.Payment.CreditCard.Brand = p.brand; string json = JsonConvert.SerializeObject(requisicao); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = client.PostAsync("1/sales", httpContent).Result; if (response.IsSuccessStatusCode) { var resposta = JsonConvert.DeserializeObject <Recorrencia>(response.Content.ReadAsStringAsync().Result); if (resposta.Payment.ReturnCode == "4" || resposta.Payment.ReturnCode == "6") { var resp = JsonConvert.DeserializeObject <Captura>(client.PutAsync("1/sales/" + resposta.Payment.PaymentId + "/capture", null).Result.Content.ReadAsStringAsync().Result); PAGAMENTOS_MOBVENDAS pag = new PAGAMENTOS_MOBVENDAS(); // pagamentos pag.ID_USUARIO_MOBVENDAS = Convert.ToInt32(p.id_usuario_mobvendas); pag.CodRetorno = Convert.ToInt32(resposta.Payment.ReturnCode); pag.Cartao = resposta.Payment.CreditCard.CardNumber; pag.Bandeira = resposta.Payment.CreditCard.Brand; pag.DataPagamento = DateTime.Now; pag.Valor = resposta.Payment.Amount; pag.MerchantOrderId = resposta.MerchantOrderId; pag.DataExpiracao = resposta.Payment.CreditCard.ExpirationDate; db.PAGAMENTOS_MOBVENDAS.Add(pag); try { db.SaveChanges(); } catch (Exception ex1) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex1.Message }); } var usuMob = db.USUARIOS_MOBVENDAS.Find(Convert.ToInt32(p.id_usuario_mobvendas)); usuMob.ID_RECORRENCIA = resposta.Payment.RecurrentPayment.RecurrentPaymentId; usuMob.SITUACAOCONTA = 1; usuMob.TIPOPLANO = 3; usuMob.DataProxPagamento = Convert.ToDateTime(resposta.Payment.RecurrentPayment.NextRecurrency); db.Entry(usuMob).State = EntityState.Modified; try { db.SaveChanges(); } catch (Exception ex2) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex2.Message }); } var ex = db.USUARIOS_MOBVENDAS.Find(pag.ID_USUARIO_MOBVENDAS); UsuarioSimples usu = new UsuarioSimples() { email = ex.EMAIL, nome = ex.NOME, dataProxPag = ex.DataProxPagamento }; try { enviarEmail(pag, usu); } catch (Exception ex3) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex3.Message }); } e.EnviarNotificacao("E", "Pagamento realizado com sucesso!", "Pagamento", usuMob.ID_USUARIO_MOBVENDAS, 4); return(new { idResposta = (int)Codigo.Ok, msgResposta = "Pagamento feito com sucesso!", dataPag = pag.DataPagamento, dataProxPag = usuMob.DataProxPagamento, cartaoCredito = pag.Cartao, bandeira = pag.Bandeira, valor = pag.Valor }); } else { /* * 5: Não autorizada * 57: Cartão expirado * 78: Cartão bloqueado * 99: Time out * 77: Carão cancelado * 70: Problemas com cartão de crédito */ switch (resposta.Payment.ReturnCode) { case "5": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Compra não autorizada!" }); case "57": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão Expirado!" }); case "78": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão bloqueado!" }); case "99": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Time Out!" }); case "77": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão cancelado!" }); case "70": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Problemas com cartão de crédito!" }); } } } return(new { idResposta = (int)Codigo.ErroGeral, msgResposta = "Erro no pagamento!" }); } catch (Exception ex) { return(new { idResposta = (int)Codigo.ErroGeral, msgResposta = ex.Message }); } }