--Enviar mensaje de bienvenida whatsapp
This commit is contained in:
@@ -25,6 +25,7 @@ Imports iText.Html2pdf
|
||||
Imports iText.Html2pdf.Resolver.Font
|
||||
Imports iText.Layout.Properties
|
||||
Imports Newtonsoft.Json
|
||||
Imports Stimulsoft.Base.Json.Linq
|
||||
Namespace Extensiones
|
||||
|
||||
#Region "E X T E N S I O N E S"
|
||||
@@ -153,6 +154,8 @@ Namespace Extensiones
|
||||
Public Const MinFecha As Date = #1/1/1900#
|
||||
Public Const MaxFecha As Date = #1/1/9999#
|
||||
Public Const GlobalRowVersion As Integer = 555555
|
||||
Public Const WhatsAppToken As String = "EAAQvTBdnkp4BO51Hmf5PD48NaY3ZC830gUS7WVNNoZAampZCK256UQ68OZCVCcPZCZCMmtW4xZA0PtP8HLRz6ZASufOgqk4A0lOpCi4ZBtWR5ZCpiMZCr9e0PpwUx4lZBW0spGZBM1DcOHQE5DnTmeJ1RISBnzI1i8RbRClLk2xbvNTu4elEXoSaofd96bW2mQ66ddLprSAZDZD"
|
||||
|
||||
|
||||
#Region "PropiedadesEncriptación"
|
||||
Private _Key() As Byte = {}
|
||||
@@ -628,21 +631,14 @@ Namespace Extensiones
|
||||
Return String.Format("<li><a href=""{4}"" {5}>{0}<span class=""details""><span class=""label label-sm label-icon label-{1}""><i class=""{2}""></i></span>{3}</span></a></li>", Time, Tipo, Ico, Mensaje, Link, If(tonewpage, "target=""_blank""", ""))
|
||||
End Function
|
||||
|
||||
Public Function EnviarNotificacionWhatsApp(NumeroTelefono As String, Mensaje As String, Optional NombrePlantilla As String = "", Optional Token As String = "") As Boolean
|
||||
Public Function EnviarNotificacionWhatsApp(NumeroTelefono As String, Mensaje As String, Optional NombrePlantilla As String = "") As Boolean
|
||||
Dim RetornoObj As String = "{}"
|
||||
Dim Retorno As Boolean = False
|
||||
Dim Str As String = ""
|
||||
|
||||
If String.IsNullOrEmpty(Token) Then
|
||||
Str = My.Computer.FileSystem.ReadAllText($"c:\temp\WSToken.txt")
|
||||
Else
|
||||
Str = Token
|
||||
End If
|
||||
|
||||
Try
|
||||
Dim TokenAutorizacion As String = $"Bearer {Str}"
|
||||
Dim TokenAutorizacion As String = $"Bearer {WhatsAppToken}"
|
||||
Using httpClient = New HttpClient()
|
||||
Using request = New HttpRequestMessage(HttpMethod.Post, New Uri("https://graph.facebook.com/v20.0/400260286507131/messages"))
|
||||
Using request = New HttpRequestMessage(HttpMethod.Post, New Uri("https://graph.facebook.com/v20.0/425866980604901/messages"))
|
||||
|
||||
request.Headers.Add("Authorization", TokenAutorizacion)
|
||||
Dim json = New Newtonsoft.Json.Linq.JObject()
|
||||
@@ -687,6 +683,78 @@ Namespace Extensiones
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function EnviarNotificacionBienvendiaWhatsApp(NumeroTelefono As String, NombreUsuario As String, Mensaje As String) As Boolean
|
||||
Dim RetornoObj As String = "{}"
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
Try
|
||||
Dim TokenAutorizacion As String = $"Bearer {WhatsAppToken}"
|
||||
Using httpClient = New HttpClient()
|
||||
Using request = New HttpRequestMessage(HttpMethod.Post, New Uri("https://graph.facebook.com/v20.0/425866980604901/messages"))
|
||||
|
||||
request.Headers.Add("Authorization", TokenAutorizacion)
|
||||
Dim json = New Newtonsoft.Json.Linq.JObject()
|
||||
json.Add(New Newtonsoft.Json.Linq.JProperty("messaging_product", "whatsapp"))
|
||||
json.Add(New Newtonsoft.Json.Linq.JProperty("to", NumeroTelefono))
|
||||
|
||||
json.Add(New Newtonsoft.Json.Linq.JProperty("type", "template"))
|
||||
|
||||
Dim plantilla As New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("name", "bienvenida"),
|
||||
New Newtonsoft.Json.Linq.JProperty("language",
|
||||
New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("code", "es_MX")
|
||||
)
|
||||
),
|
||||
New Newtonsoft.Json.Linq.JProperty("components",
|
||||
New Newtonsoft.Json.Linq.JArray(
|
||||
New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("type", "header"),
|
||||
New Newtonsoft.Json.Linq.JProperty("parameters",
|
||||
New Newtonsoft.Json.Linq.JArray(
|
||||
New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("type", "text"),
|
||||
New Newtonsoft.Json.Linq.JProperty("text", NombreUsuario)
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("type", "body"),
|
||||
New Newtonsoft.Json.Linq.JProperty("parameters",
|
||||
New Newtonsoft.Json.Linq.JArray(
|
||||
New Newtonsoft.Json.Linq.JObject(
|
||||
New Newtonsoft.Json.Linq.JProperty("type", "text"),
|
||||
New Newtonsoft.Json.Linq.JProperty("text", Mensaje)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
json.Add(New Newtonsoft.Json.Linq.JProperty("template", plantilla))
|
||||
|
||||
Using content = New StringContent(json.ToString, Encoding.UTF8, "application/json")
|
||||
request.Content = content
|
||||
Dim response = httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result
|
||||
|
||||
If response.StatusCode = Net.HttpStatusCode.OK Then
|
||||
RetornoObj = response.Content.ReadAsStringAsync().Result
|
||||
Retorno = True
|
||||
End If
|
||||
End Using
|
||||
|
||||
End Using
|
||||
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
RetornoObj = New Newtonsoft.Json.Linq.JObject(New Newtonsoft.Json.Linq.JProperty("Error", ex.ToString())).ToString()
|
||||
GuardaLog("Ocurrió un error al enviar la informacion por whatsapp" & ex.Message)
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
@@ -129,7 +129,6 @@
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
</div>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||
|
||||
@@ -193,9 +193,8 @@ Partial Class SessionesActivas
|
||||
|
||||
Dim mensaje = TxtMensaje.Text.Trim() + "<br/> <a target='_blank' href='https://www.w3schools.com'>Liga</a>"
|
||||
|
||||
'TokenPermanente
|
||||
Dim Token = "EAAQvTBdnkp4BO51Hmf5PD48NaY3ZC830gUS7WVNNoZAampZCK256UQ68OZCVCcPZCZCMmtW4xZA0PtP8HLRz6ZASufOgqk4A0lOpCi4ZBtWR5ZCpiMZCr9e0PpwUx4lZBW0spGZBM1DcOHQE5DnTmeJ1RISBnzI1i8RbRClLk2xbvNTu4elEXoSaofd96bW2mQ66ddLprSAZDZD"
|
||||
EnviarNotificacionWhatsApp("6621143532", mensaje, Token:=Token)
|
||||
|
||||
EnviarNotificacionWhatsApp("6621143532", mensaje)
|
||||
|
||||
ClsSisNotificaciones.EnviarAlerta("Aviso", mensaje, RCveUsuario, Tipo:=TipoNotificacion.ToastInformacionB)
|
||||
|
||||
|
||||
@@ -1249,7 +1249,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<div class="portlet light xspadding bordered" style="display:none!important">
|
||||
<div class="portlet light xspadding bordered" style="display: none!important">
|
||||
<div class="portlet-title">
|
||||
<div class="caption font-green">
|
||||
<i class="icon-pin font-green"></i>
|
||||
@@ -2622,6 +2622,37 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="portlet light xspadding bordered ">
|
||||
<div class="portlet-title">
|
||||
<div class="caption font-green">
|
||||
<i class="icon-pin font-green"></i>
|
||||
<span class="caption-subject bold uppercase">Notificaciones</span>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<div class="btn-group">
|
||||
</div>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
|
||||
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body nomarginleftright form-horizontal form-row-sepe formnombottom ">
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td>Celular:</td>
|
||||
<td>
|
||||
<asp:TextBox ID="TxtTelefono" TextMode="Phone" CssClass="form-control input-sm" runat="server"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"> <asp:Button ID="BtnEnviarMensaje" runat="server" Text="Enviar Notificación" class="btn btn-primary" OnClick="BtnEnviarMensaje_Click" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
<Triggers>
|
||||
@@ -3194,7 +3225,6 @@
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
|
||||
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
|
||||
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
Option Strict On
|
||||
|
||||
Imports System.Data
|
||||
Imports System.Net.Http
|
||||
Imports Extensiones
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
|
||||
@@ -611,6 +612,7 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
TxtPorcentajeMaximoAutorizacion.Text = ObjUsuario.DtResultados.Rows(0)("PorcentajeMaximoAutorizacion").ToString().ToDecimal().FormatoNumero(2)
|
||||
TxtDiasVencidos.Text = ObjUsuario.DtResultados.Rows(0)("DiasMaximoAutorizacion").ToString()
|
||||
|
||||
TxtTelefono.Text = ObjUsuario.DtResultados.Rows(0)("Celular").ToString()
|
||||
Else
|
||||
Alert("El Usuario Solicitado no existe, Revise su búsqueda.", TipoMensaje.MsgAdvertencia)
|
||||
BtnGuardar.Enabled = False
|
||||
@@ -858,7 +860,7 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
|
||||
'REGISTRA O ACTUALIZA LOS DATOS GENERALES DEL USUARIO
|
||||
If CveUsuario = -1 Then
|
||||
CveUsuario = ObjUsuarios.AddUsuario(TxtUsuario.Text.Trim, Encripta(ContraseñaPredeterminada), TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, UsuarioActual.CveUsuario, DdlEmpresa.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, CveAlmacenAsignado:=DdlAlmacenGeneral.SelectedValue.ToEntero, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble, CodigoAcceso:=CodigoAcceso, LimiteCreditoAutorizado:=TxtLimiteAutorizado.Text.ToDecimal(), PorcentajeMaximoAutorizacion:=TxtPorcentajeMaximoAutorizacion.Text.ToDecimal(), DiasMaximoAutorizacion:=TxtDiasVencidos.Text.ToEntero())
|
||||
CveUsuario = ObjUsuarios.AddUsuario(TxtUsuario.Text.Trim, Encripta(ContraseñaPredeterminada), TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, UsuarioActual.CveUsuario, DdlEmpresa.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, CveAlmacenAsignado:=DdlAlmacenGeneral.SelectedValue.ToEntero, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble, CodigoAcceso:=CodigoAcceso, LimiteCreditoAutorizado:=TxtLimiteAutorizado.Text.ToDecimal(), PorcentajeMaximoAutorizacion:=TxtPorcentajeMaximoAutorizacion.Text.ToDecimal(), DiasMaximoAutorizacion:=TxtDiasVencidos.Text.ToEntero(), Celular:=TxtTelefono.Text.Trim())
|
||||
EsNuevoUsuario = True
|
||||
If CveUsuario = -1 Then
|
||||
TieneError = True
|
||||
@@ -870,7 +872,7 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
If Not ObjUsuarios.UpdateUsuario(TxtUsuario.Text.Trim, TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, ChkEstatus.Checked, DdlEmpresa.SelectedValue.ToEntero, CveUsuario, DdlAlmacenGeneral.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveUsuario, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble, CodigoAcceso:=CodigoAcceso, LimiteCreditoAutorizado:=TxtLimiteAutorizado.Text.ToDecimal(), PorcentajeMaximoAutorizacion:=TxtPorcentajeMaximoAutorizacion.Text.ToDecimal(), DiasMaximoAutorizacion:=TxtDiasVencidos.Text.ToEntero()) Then
|
||||
If Not ObjUsuarios.UpdateUsuario(TxtUsuario.Text.Trim, TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, ChkEstatus.Checked, DdlEmpresa.SelectedValue.ToEntero, CveUsuario, DdlAlmacenGeneral.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveUsuario, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble, CodigoAcceso:=CodigoAcceso, LimiteCreditoAutorizado:=TxtLimiteAutorizado.Text.ToDecimal(), PorcentajeMaximoAutorizacion:=TxtPorcentajeMaximoAutorizacion.Text.ToDecimal(), DiasMaximoAutorizacion:=TxtDiasVencidos.Text.ToEntero(), Celular:=TxtTelefono.Text.Trim()) Then
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
@@ -5013,4 +5015,82 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
|
||||
ImprimirPDF("Empresas/Grales/Formatos/BitacoraLogin.rdlc", DtDatos, params, String.Format("BitacoraRegistro-{0}", NowADS().ToDateTime.ToShortDateString))
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnEnviarMensaje_Click(sender As Object, e As EventArgs)
|
||||
EnviarNotificacionBienvendiaWhatsApp($"52{TxtTelefono.Text}", TxtNombre.Text, "\nFavor de responder el mensaje")
|
||||
Alert("El mensaje se envio correctamente")
|
||||
End Sub
|
||||
|
||||
'Public Function EnviarNotificacionBienvendiaWhatsApp(NumeroTelefono As String, NombreUsuario As String, Mensaje As String) As Boolean
|
||||
' Dim RetornoObj As String = "{}"
|
||||
' Dim Retorno As Boolean = False
|
||||
|
||||
' Try
|
||||
' Dim TokenAutorizacion As String = $"Bearer {WhatsAppToken}"
|
||||
' Using httpClient = New HttpClient()
|
||||
' Using request = New HttpRequestMessage(HttpMethod.Post, New Uri("https://graph.facebook.com/v20.0/425866980604901/messages"))
|
||||
|
||||
' request.Headers.Add("Authorization", TokenAutorizacion)
|
||||
' Dim json = New Newtonsoft.Json.Linq.JObject()
|
||||
' json.Add(New Newtonsoft.Json.Linq.JProperty("messaging_product", "whatsapp"))
|
||||
' json.Add(New Newtonsoft.Json.Linq.JProperty("to", NumeroTelefono))
|
||||
|
||||
' json.Add(New Newtonsoft.Json.Linq.JProperty("type", "template"))
|
||||
|
||||
' Dim plantilla As New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("name", "bienvenida"),
|
||||
' New Newtonsoft.Json.Linq.JProperty("language",
|
||||
' New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("code", "es_MX")
|
||||
' )
|
||||
' ),
|
||||
' New Newtonsoft.Json.Linq.JProperty("components",
|
||||
' New Newtonsoft.Json.Linq.JArray(
|
||||
' New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("type", "header"),
|
||||
' New Newtonsoft.Json.Linq.JProperty("parameters",
|
||||
' New Newtonsoft.Json.Linq.JArray(
|
||||
' New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("type", "text"),
|
||||
' New Newtonsoft.Json.Linq.JProperty("text", NombreUsuario)
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
' ),
|
||||
' New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("type", "body"),
|
||||
' New Newtonsoft.Json.Linq.JProperty("parameters",
|
||||
' New Newtonsoft.Json.Linq.JArray(
|
||||
' New Newtonsoft.Json.Linq.JObject(
|
||||
' New Newtonsoft.Json.Linq.JProperty("type", "text"),
|
||||
' New Newtonsoft.Json.Linq.JProperty("text", Mensaje)
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
' )
|
||||
|
||||
' json.Add(New Newtonsoft.Json.Linq.JProperty("template", plantilla))
|
||||
|
||||
' Using content = New StringContent(json.ToString, Encoding.UTF8, "application/json")
|
||||
' request.Content = content
|
||||
' Dim response = httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result
|
||||
|
||||
' If response.StatusCode = Net.HttpStatusCode.OK Then
|
||||
' RetornoObj = response.Content.ReadAsStringAsync().Result
|
||||
' Retorno = True
|
||||
' End If
|
||||
' End Using
|
||||
|
||||
' End Using
|
||||
|
||||
' End Using
|
||||
' Catch ex As Exception
|
||||
' RetornoObj = New Newtonsoft.Json.Linq.JObject(New Newtonsoft.Json.Linq.JProperty("Error", ex.ToString())).ToString()
|
||||
' GuardaLog("Ocurrió un error al enviar la informacion por whatsapp" & ex.Message)
|
||||
' End Try
|
||||
' Return Retorno
|
||||
'End Function
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user