<%@ WebHandler Language="VB" Class="SIGPolizaVirtual" %> Imports Fluent Imports System Imports System.Web Imports System.Net Imports System.Net.Http Imports System.Web.Http Imports System.Data Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq Imports Extensiones Imports System.IO Imports System.Runtime.CompilerServices Imports System.Xml Imports System.Xml.Serialization Imports System.Linq Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState Protected ReadOnly Property User As String = "cslth.2809@jcilink.com" Protected ReadOnly Property Password As String = "ff31580a95f36b51ad27f970428b77a5a9245076" #Region "U S U A R I O - T O K E N" Private Function ValidaUsuarioSistema(CveEmpresa As Integer, Optional CveUsuario As Integer = 100) As Usuario Dim UsuarioToken As Usuario = Nothing Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) If ObjUsuarios.DtResultados.Rows.Count > 0 Then Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() UsuarioToken = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) UsuarioToken.CveEmpresa = CveEmpresa End If ObjUsuarios.Dispose() Return UsuarioToken End Function #End Region Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest context.Response.ContentType = "application/xml" Dim UsuarioActual = ValidaUsuarioSistema(1, 100) 'Dim ObjFactura As New Modelos.Factura(usuario, 898028, 140) CancelarFacturaPADE(context, UsuarioActual) End Sub Private Sub TimbrarFacturaPADE(ByVal context As HttpContext, UsuarioActual As Usuario) Dim UsuarioServicio As String = "rene.molina@adssistemas.mx" Dim ClaveServicio As String = "Facturacion2021#" Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, "Ing") Dim NombreArchivoXML As String = "test" If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo) Dim EmisorRFC As String = "ZUÑ920208KL4" Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key" Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer" Dim Clave = "12345678a" Dim TimbraProduccion = False If Not File.Exists(ArchivoCertificado) Then context.Response.Write("El archivo de llave privada no existe") Exit Sub End If If Not File.Exists(ArchivoLLave) Then context.Response.Write("El archivo de llave privada no existe") Exit Sub End If If UsuarioActual.Empresa.ContraseñaKey = "" Then context.Response.Write("La clave no puede ser vacía") Exit Sub End If Dim llaveByte As Byte(), certByte As Byte() Dim llaveBase64 As String = "", certBase64 As String = "" Dim cfdi As New GoFac.GoCfdi() Dim complemento As String = "" Dim complementoConcepto As String = "" Try llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave) llaveBase64 = Convert.ToBase64String(llaveByte) Catch ex As Exception context.Response.Write($"Error al leer la llave privada: {ex.Message}") Exit Sub End Try Try certByte = System.IO.File.ReadAllBytes(ArchivoCertificado) certBase64 = Convert.ToBase64String(certByte) Catch ex As Exception context.Response.Write($"Error al leer el certificado: {ex.Message}") Exit Sub End Try Dim TokenAuth As String = ToBase64Encode($"{UsuarioServicio}:{ClaveServicio}") Dim XmlBase64 As String = ToBase64Encode(XMLPrueba) Dim payload As New JObject( New JProperty("contrato", "72330711-cac6-4106-8051-cbcda1aef495"), New JProperty("certBase64", certBase64), New JProperty("keyBase64", llaveBase64), New JProperty("keyPass", Clave), New JProperty("xmlBase64", XmlBase64), New JProperty("prueba", (Not TimbraProduccion).ToString().ToLower), New JProperty("opciones", New String(0) {""}) ) Dim Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth) If Not String.IsNullOrEmpty(Respuesta) Then Dim result As PADEServicioTimbradoResp = Nothing Dim serializer As XmlSerializer = New XmlSerializer(GetType(PADEServicioTimbradoResp)) Try Using reader As TextReader = New StringReader(Respuesta) result = CType(serializer.Deserialize(reader), PADEServicioTimbradoResp) End Using Catch ex As Exception OnError("Ocurrió un error al obtener los resultados", ex) End Try If result IsNot Nothing Then Dim xmlGuardar = result.xmlBase64.ToBase64Decode() context.Response.Write(xmlGuardar) Else context.Response.Write(Respuesta) End If Else context.Response.Write(Respuesta) End If End Sub Private Sub CancelarFacturaPADE(ByVal context As HttpContext, UsuarioActual As Usuario) Dim UsuarioServicio As String = "rene.molina@adssistemas.mx" Dim ClaveServicio As String = "Facturacion2021#" Dim EmisorRFC As String = "ZUÑ920208KL4" Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key" Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer" Dim Clave = "12345678a" Dim TimbraProduccion = False If Not File.Exists(ArchivoCertificado) Then context.Response.Write("El archivo de llave privada no existe") Exit Sub End If If Not File.Exists(ArchivoLLave) Then context.Response.Write("El archivo de llave privada no existe") Exit Sub End If If UsuarioActual.Empresa.ContraseñaKey = "" Then context.Response.Write("La clave no puede ser vacía") Exit Sub End If Dim llaveByte As Byte(), certByte As Byte() Dim llaveBase64 As String = "", certBase64 As String = "" Dim cfdi As New GoFac.GoCfdi() Dim complemento As String = "" Dim complementoConcepto As String = "" Try llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave) llaveBase64 = Convert.ToBase64String(llaveByte) Catch ex As Exception context.Response.Write($"Error al leer la llave privada: {ex.Message}") Exit Sub End Try Try certByte = System.IO.File.ReadAllBytes(ArchivoCertificado) certBase64 = Convert.ToBase64String(certByte) Catch ex As Exception context.Response.Write($"Error al leer el certificado: {ex.Message}") Exit Sub End Try Dim TokenAuth As String = ToBase64Encode($"{UsuarioServicio}:{ClaveServicio}") Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495" Dim FolioFiscal As String = "9A46AD71-560B-4048-8B40-80ADC57C1CDC" 'Dim Respuesta As String = EnviarInformacionCancelacionPADE("https://timbrado.pade.mx/servicio/rest/cancelacion/cancelar", TokenAuth, Contrato, EmisorRFC, certBase64, llaveBase64, Clave, FolioFiscal) 'context.Response.Write(Respuesta) Dim Respuesta As String = EnviarInformacionCancelacionPADESOAP("https://timbrado.pade.mx/servicio/Timbrado3.3?wsdl", UsuarioServicio, ClaveServicio, Contrato, EmisorRFC, certBase64, llaveBase64, Clave, FolioFiscal, TimbraProduccion) If Not String.IsNullOrEmpty(Respuesta) Then Dim result As PADEServicioCancelacionResp = Nothing Dim serializer As XmlSerializer = New XmlSerializer(GetType(PADEServicioCancelacionResp)) Try Using reader As TextReader = New StringReader(Respuesta) result = CType(serializer.Deserialize(reader), PADEServicioCancelacionResp) End Using Catch ex As Exception OnError("Ocurrió un error al obtener los resultados", ex) End Try If result IsNot Nothing Then context.Response.ContentType = "application/json" context.Response.Write(JsonConvert.SerializeObject(result)) Else context.Response.Write(Respuesta) End If Else context.Response.Write(Respuesta) End If 'Dim arrayFolioFiscal = New String(0) {FolioFiscal} 'Dim arrayOpciones = New List(Of String) 'If Not TimbraProduccion Then ' arrayOpciones.Add("MODO_PRUEBA:1") 'End If 'Dim pade = New PADE33.PadeTimbradoServiceClient() 'Dim Res = pade.cancelarConOpciones(Contrato, UsuarioServicio, ClaveServicio, EmisorRFC, arrayFolioFiscal, certByte, llaveByte, Clave, arrayOpciones.ToArray()) 'context.Response.Write(Res) End Sub Private Function EnviarInformacionCancelacionPADESOAP(ByVal url As String, UsuarioServicio As String, PassServicio As String, contrato As String, rfcEmisor As String, certBase64 As String, keyBase64 As String, keyPass As String, arregloUUID As String, TimbraProduccion As Boolean) As String Dim retorno = "" Try Dim request As HttpWebRequest = CType(WebRequest.Create($"{url}"), HttpWebRequest) 'request.Headers.Add("SOAPAction:http://tempuri.org/TestCfd33 ") request.ContentType = "text/xml;charset=""utf-8""" request.Accept = "text/xml" request.Method = "POST" Dim XMLString As String = $" {contrato} {UsuarioServicio} {PassServicio} {rfcEmisor} {arregloUUID} {certBase64} {keyBase64} {keyPass} {If(TimbraProduccion, "", "MODO_PRUEBA:3")} " Dim SOAPReqBody As XmlDocument = New XmlDocument() SOAPReqBody.LoadXml(XMLString) Using stream As Stream = request.GetRequestStream() SOAPReqBody.Save(stream) End Using Dim response As String = "" Using Serviceres As WebResponse = request.GetResponse() Using rd As StreamReader = New StreamReader(Serviceres.GetResponseStream()) response = rd.ReadToEnd() End Using End Using If Not String.IsNullOrEmpty(response) Then Dim xmlRetorno = New XmlDocument() xmlRetorno.LoadXml(response) Dim elemList As XmlNodeList = xmlRetorno.GetElementsByTagName("return") If elemList.Count > 0 Then If elemList(0).ChildNodes.Count > 0 Then retorno = elemList(0).ChildNodes(0).Value End If End If End If Catch ex As Exception retorno = "" OnError("Ocurrió un error al cancelar", ex) End Try Return retorno End Function Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return False End Get End Property Private Function EnviarInformacionPADE(url As String, payload As String, tokenAuth As String) As String Dim Retorno As String = "{}" Try Using httpClient = New HttpClient() httpClient.Timeout = New TimeSpan(0, 5, 0) Using request = New HttpRequestMessage(HttpMethod.Post, New Uri(url)) request.Headers.Add("Authorization", $"Basic {tokenAuth}") Using content = New StringContent(payload, Encoding.UTF8, "application/json") request.Content = content Dim response = httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result Retorno = response.Content.ReadAsStringAsync().Result End Using End Using End Using Catch ex As Exception OnError("Ocurrió un error al enviar la informacion", ex) End Try Return Retorno End Function Private Function EnviarInformacionCancelacionPADE(url As String, tokenAuth As String, contrato As String, rfcEmisor As String, certBase64 As String, keyBase64 As String, keyPass As String, arregloUUID As String) As String Dim Retorno As String = "" Try Dim urlParametros As String = String.Format("contrato={0}&rfcEmisor={1}&certBase64={2}&keyBase64={3}&keyPass={4}&arregloUUID={5}&opciones={6}", contrato, rfcEmisor, certBase64, keyBase64, keyPass, arregloUUID, "MODO_PRUEBA:1") Dim urlRequest As String = String.Format("{0}?{1}", url, urlParametros) Using httpClient = New HttpClient() httpClient.Timeout = New TimeSpan(0, 1, 0) Using request = New HttpRequestMessage(HttpMethod.Post, New Uri(urlRequest)) request.Headers.Add("Authorization", $"Basic {tokenAuth}") Dim response = httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result Retorno = response.Content.ReadAsStringAsync().Result 'Dim Parametros = New List(Of KeyValuePair(Of String, String)) 'Parametros.Add(New KeyValuePair(Of String, String)("contrato", contrato)) 'Parametros.Add(New KeyValuePair(Of String, String)("rfcEmisor", rfcEmisor)) 'Parametros.Add(New KeyValuePair(Of String, String)("certBase64", certBase64)) 'Parametros.Add(New KeyValuePair(Of String, String)("keyBase64", keyBase64)) 'Parametros.Add(New KeyValuePair(Of String, String)("keyPass", keyPass)) 'Parametros.Add(New KeyValuePair(Of String, String)("arregloUUID", arregloUUID)) 'Using content = New FormUrlEncodedContent(Parametros) ' request.Content = content 'End Using End Using End Using Catch ex As Exception Retorno = "" OnError("Ocurrió un error al enviar la informacion", ex) End Try Return Retorno End Function Public Function ToBase64Encode(ByVal plainText As String) As String Dim plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText) Return System.Convert.ToBase64String(plainTextBytes) End Function Public Function ToBase64Decode(ByVal base64EncodedData As String) As String Dim base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData) Return System.Text.Encoding.UTF8.GetString(base64EncodedBytes) End Function Public Class PADEServicioTimbradoResp Public Property id As String Public Property timbradoOk As Boolean Public Property contrato As String Public Property codigo As String Public Property mensaje As String Public Property UUID As String Public Property FechaTimbrado As DateTime Public Property xmlBase64 As String End Class Public Class PADEServicioCancelacionResp Public Property statusOk As Boolean Public Property codigo As String Public Property mensaje As String Public Property procesados As Integer Public Property cancelados As Integer Public Property cancelaciones As List(Of PADECancelacion) End Class Public Class PADECancelacion Public Property uuid As String Public Property codigo As String Public Property mensaje As String End Class Public Property XMLPrueba As String = "" #Region "P O L I Z A - V I R T U A L" Protected Sub GeneraPolizaVentaWS(ByVal context As HttpContext, ObjFactura As Modelos.Factura) Dim obj As New MPolizaVentaWS 'DATOS DEL CLIENTE obj.customer_name = ObjFactura.Cliente.Nombre obj.customer_last_name1 = "" obj.customer_last_name2 = "" obj.customer_birthday = Nothing obj.customer_phone = ObjFactura.Cliente.Telefono obj.customer_email = ObjFactura.Cliente.Mail obj.customer_gender = "03" 'OTRO GENERO obj.customer_advertising = False obj.customer_car_brand = "00" obj.customer_car_model = "00" obj.customer_car_year = ObjFactura.Fecha.Year 'DATOS DE VENTA obj.sale_date = ClsPaginas.NowADS() obj.sale_paidby = "01" obj.sale_type = "01" 'PISO obj.sale_type_service = "01" 'PARTICULAR obj.sale_total = ObjFactura.Total obj.sale_discount = 0 'ObjFactura.SubTotal obj.sale_id = GuidGenerator.GenerateTimeBasedGuid().ToString() 'Dim PS = ObjFactura.DtDetalle.Rows(0) 'DATOS DEL PRODUCTO obj.product_code = "174925" obj.product_unique_code = "65047187" obj.product_sale_type = "02" 'AJUSTE 'DATOS DE USADO obj.used_product = True obj.used_brand = "01" obj.used_bci = "25" obj.used_month = 1 obj.used_year = 2015 obj.used_sale_date = ObjFactura.Fecha EnviarPolizaVentaWS(context, obj) End Sub Protected Sub GeneraPolizaVentaLTHWSD(ByVal context As HttpContext, ObjFactura As Modelos.Factura) Dim obj As New MPolizaVentaLTHWSD 'DATOS DEL CLIENTE obj.customer_name = "JOSE ENRIQUE" obj.customer_last_name1 = "VIZCARA" obj.customer_last_name2 = "RENDON" obj.customer_birthday = ClsPaginas.NowADS() obj.customer_phone = "8186545256" obj.customer_email = "mail@mail.com" obj.customer_gender = "02" obj.customer_advertising = False obj.customer_car_brand = "02" obj.customer_car_model = "741" obj.customer_car_year = 2015 'DATOS DE VENTA obj.sale_date = ClsPaginas.NowADS() obj.sale_paidby = "01" obj.sale_type = "01" obj.sale_type_service = "01" obj.sale_discount = 0 obj.sale_id = GuidGenerator.GenerateTimeBasedGuid().ToString() 'DATOS DEL PRODUCTO obj.product_code = "174925" obj.product_unique_code = "65047187" obj.product_sale_type = "01" 'DATOS DE USADO obj.used_product = True obj.used_brand = "01" obj.used_bci = "25" obj.used_month = 1 obj.used_year = 2015 obj.used_sale_date = ClsPaginas.NowADS() EnviarPolizaVentaLTHWSD(context, obj) End Sub Protected Sub GeneraIndicadores(ByVal context As HttpContext) Dim obj As New MIndicador(True) EnviarPolizaIndicadores(context, obj) End Sub Protected Sub EnviarPolizaVentaLTHWSD(ByVal context As HttpContext, obj As MPolizaVentaLTHWSD) Dim Retorno As String = "[]" Try Using wc As New HttpClient() Dim Url = New Uri("http://polizavirtual.com.mx/lthwsd/api/Venta") Dim Parametros = New List(Of KeyValuePair(Of String, String)) Parametros.Add(New KeyValuePair(Of String, String)("User", User)) Parametros.Add(New KeyValuePair(Of String, String)("password", Password)) Parametros.Add(New KeyValuePair(Of String, String)("customer_name", obj.customer_name)) Parametros.Add(New KeyValuePair(Of String, String)("customer_last_name1", obj.customer_last_name1)) Parametros.Add(New KeyValuePair(Of String, String)("customer_last_name2", obj.customer_last_name1)) Parametros.Add(New KeyValuePair(Of String, String)("customer_birthday", obj.customer_birthday.ToString("yyyy-MM-dd HH:mm:ss"))) Parametros.Add(New KeyValuePair(Of String, String)("customer_phone", obj.customer_phone)) Parametros.Add(New KeyValuePair(Of String, String)("customer_email", obj.customer_email)) Parametros.Add(New KeyValuePair(Of String, String)("customer_gender", obj.customer_gender)) Parametros.Add(New KeyValuePair(Of String, String)("customer_advertising", obj.customer_advertising.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_date", obj.sale_date.ToString("yyyy-MM-dd HH:mm:ss"))) Parametros.Add(New KeyValuePair(Of String, String)("sale_paidby", obj.sale_paidby)) Parametros.Add(New KeyValuePair(Of String, String)("sale_type", obj.sale_type)) Parametros.Add(New KeyValuePair(Of String, String)("sale_type_service", obj.sale_type_service)) Parametros.Add(New KeyValuePair(Of String, String)("product_code", obj.product_code)) Parametros.Add(New KeyValuePair(Of String, String)("product_unique_code", obj.product_unique_code)) Parametros.Add(New KeyValuePair(Of String, String)("product_sale_type", obj.product_sale_type)) Parametros.Add(New KeyValuePair(Of String, String)("used_product", obj.used_product.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_brand", obj.used_brand)) Parametros.Add(New KeyValuePair(Of String, String)("used_bci", obj.used_bci)) Parametros.Add(New KeyValuePair(Of String, String)("used_month", obj.used_month.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_year", obj.used_year.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_sale_date", obj.used_sale_date.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_brand", obj.customer_car_brand.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_model", obj.customer_car_model.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_year", obj.customer_car_year.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_discount", obj.sale_discount.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_id", obj.sale_id.ToString())) Dim content As New FormUrlEncodedContent(Parametros) Dim response = wc.PostAsync(Url, content).Result Retorno = response.Content.ReadAsStringAsync().Result End Using Catch ex As Exception ex.GuardaLog(ex.Message) End Try context.Response.Write(Retorno) End Sub Protected Sub EnviarPolizaVentaWS(ByVal context As HttpContext, obj As MPolizaVentaWS) Dim Retorno As String = "[]" Try Using wc As New HttpClient() Dim Url = New Uri("http://polizavirtual.com.mx/webservice/api/Venta") Dim Parametros = New List(Of KeyValuePair(Of String, String)) Parametros.Add(New KeyValuePair(Of String, String)("User", User)) Parametros.Add(New KeyValuePair(Of String, String)("password", Password)) Parametros.Add(New KeyValuePair(Of String, String)("customer_name", obj.customer_name)) Parametros.Add(New KeyValuePair(Of String, String)("customer_last_name1", obj.customer_last_name1)) Parametros.Add(New KeyValuePair(Of String, String)("customer_last_name2", obj.customer_last_name1)) Parametros.Add(New KeyValuePair(Of String, String)("customer_birthday", obj.customer_birthday.ToString("yyyy-MM-dd HH:mm:ss"))) Parametros.Add(New KeyValuePair(Of String, String)("customer_phone", obj.customer_phone)) Parametros.Add(New KeyValuePair(Of String, String)("customer_email", obj.customer_email)) Parametros.Add(New KeyValuePair(Of String, String)("customer_gender", obj.customer_gender)) Parametros.Add(New KeyValuePair(Of String, String)("customer_advertising", obj.customer_advertising.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_date", obj.sale_date.ToString("yyyy-MM-dd HH:mm:ss"))) Parametros.Add(New KeyValuePair(Of String, String)("sale_paidby", obj.sale_paidby)) Parametros.Add(New KeyValuePair(Of String, String)("sale_type", obj.sale_type)) Parametros.Add(New KeyValuePair(Of String, String)("sale_type_service", obj.sale_type_service)) Parametros.Add(New KeyValuePair(Of String, String)("product_code", obj.product_code)) Parametros.Add(New KeyValuePair(Of String, String)("product_unique_code", obj.product_unique_code)) Parametros.Add(New KeyValuePair(Of String, String)("product_sale_type", obj.product_sale_type)) Parametros.Add(New KeyValuePair(Of String, String)("sale_total", obj.sale_total.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_product", obj.used_product.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_brand", obj.used_brand)) Parametros.Add(New KeyValuePair(Of String, String)("used_bci", obj.used_bci)) Parametros.Add(New KeyValuePair(Of String, String)("used_month", obj.used_month.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_year", obj.used_year.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("used_sale_date", obj.used_sale_date.ToString("yyyy-MM-dd HH:mm:ss"))) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_brand", obj.customer_car_brand.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_model", obj.customer_car_model.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("customer_car_year", obj.customer_car_year.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_discount", obj.sale_discount.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("sale_id", obj.sale_id.ToString())) Dim content As New FormUrlEncodedContent(Parametros) Dim response = wc.PostAsync(Url, content).Result Retorno = response.Content.ReadAsStringAsync().Result End Using Catch ex As Exception ex.GuardaLog(ex.Message) End Try context.Response.Write(Retorno) End Sub Protected Sub EnviarPolizaIndicadores(ByVal context As HttpContext, obj As MIndicador) Dim Retorno As String = "[]" Try Using wc As New HttpClient() Dim Url = New Uri("http://polizavirtual.com.mx/webservice/api/Indicadores") Dim Parametros = New List(Of KeyValuePair(Of String, String)) Parametros.Add(New KeyValuePair(Of String, String)("User", User)) Parametros.Add(New KeyValuePair(Of String, String)("password", Password)) Parametros.Add(New KeyValuePair(Of String, String)("v_b_optima", obj.v_b_optima.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_fullpower", obj.v_b_fullpower.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_hitec", obj.v_b_hitec.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_agm", obj.v_b_agm.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_suv", obj.v_b_suv.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_taxi", obj.v_b_taxi.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_america", obj.v_b_america.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_lth", obj.v_b_lth.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_cronos", obj.v_b_cronos.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_diener", obj.v_b_diener.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_b_heavyduty", obj.v_b_heavyduty.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_m_lth", obj.v_m_lth.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_filtros", obj.v_o_filtros.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_lub1", obj.v_o_lub1.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_lubgalon", obj.v_o_lubgalon.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_lub5", obj.v_o_lub5.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_aa", obj.v_o_aa.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("v_o_aaa", obj.v_o_aaa.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_optima", obj.g_b_optima.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_fullpower", obj.g_b_fullpower.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_hitec", obj.g_b_hitec.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_agm", obj.g_b_agm.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_suv", obj.g_b_suv.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_taxi", obj.g_b_taxi.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_america", obj.g_b_america.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_lth", obj.g_b_lth.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_cronos", obj.g_b_cronos.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_diener", obj.g_b_diener.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_b_heavyduty", obj.g_b_heavyduty.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("g_m_lth", obj.g_m_lth.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_optima", obj.a_b_optima.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_fullpower", obj.a_b_fullpower.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_hitec", obj.a_b_hitec.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_agm", obj.a_b_agm.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_suv", obj.a_b_suv.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_taxi", obj.a_b_taxi.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_america", obj.a_b_america.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_lth", obj.a_b_lth.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_cronos", obj.a_b_cronos.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_diener", obj.a_b_diener.ToString())) Parametros.Add(New KeyValuePair(Of String, String)("a_b_heavyduty", obj.a_b_heavyduty.ToString())) Dim content As New FormUrlEncodedContent(Parametros) Dim response = wc.PostAsync(Url, content).Result Retorno = response.Content.ReadAsStringAsync().Result End Using Catch ex As Exception ex.GuardaLog(ex.Message) End Try context.Response.Write(Retorno) End Sub #End Region End Class Public Class MPolizaVentaLTHWSD Public Property customer_name As String Public Property customer_last_name1 As String Public Property customer_last_name2 As String Public Property customer_birthday As DateTime Public Property customer_phone As String Public Property customer_email As String Public Property customer_gender As String Public Property customer_advertising As Boolean Public Property sale_date As DateTime Public Property sale_paidby As String Public Property sale_type As String Public Property sale_type_service As String Public Property product_code As String Public Property product_unique_code As String Public Property product_sale_type As String Public Property used_product As Boolean Public Property used_brand As String Public Property used_bci As String Public Property used_month As Integer Public Property used_year As Integer Public Property used_sale_date As DateTime Public Property customer_car_brand As String Public Property customer_car_model As String Public Property customer_car_year As Integer Public Property sale_discount As Decimal Public Property sale_id As String End Class Public Class MPolizaVentaWS Public Property customer_name As String Public Property customer_last_name1 As String Public Property customer_last_name2 As String Public Property customer_birthday As DateTime Public Property customer_phone As String Public Property customer_email As String Public Property customer_gender As String Public Property customer_advertising As Boolean Public Property sale_date As DateTime Public Property sale_paidby As String Public Property sale_type As String Public Property sale_type_service As String Public Property sale_total As Decimal Public Property product_code As String Public Property product_unique_code As String Public Property product_sale_type As String Public Property used_product As Boolean Public Property used_brand As String Public Property used_bci As String Public Property used_month As Integer Public Property used_year As Integer Public Property used_sale_date As DateTime Public Property customer_car_brand As String Public Property customer_car_model As String Public Property customer_car_year As Integer Public Property sale_discount As Decimal Public Property sale_id As String End Class Public Class MIndicador Sub New(Optional UsaValoresPrueba As Boolean = False) If UsaValoresPrueba Then Dim Index As Integer = 0 For Each p As Reflection.PropertyInfo In Me.GetType().GetProperties() Index = Index + 1 p.SetValue(Me, Convert.ChangeType(Index, p.PropertyType), Nothing) Next End If End Sub Public Property v_b_optima As Integer Public Property v_b_fullpower As Integer Public Property v_b_hitec As Integer Public Property v_b_agm As Integer Public Property v_b_suv As Integer Public Property v_b_taxi As Integer Public Property v_b_america As Integer Public Property v_b_lth As Integer Public Property v_b_cronos As Integer Public Property v_b_diener As Integer Public Property v_b_heavyduty As Integer Public Property v_m_lth As Integer Public Property v_o_filtros As Integer Public Property v_o_lub1 As Integer Public Property v_o_lubgalon As Integer Public Property v_o_lub5 As Integer Public Property v_o_aa As Integer Public Property v_o_aaa As Integer Public Property g_b_optima As Integer Public Property g_b_fullpower As Integer Public Property g_b_hitec As Integer Public Property g_b_agm As Integer Public Property g_b_suv As Integer Public Property g_b_taxi As Integer Public Property g_b_america As Integer Public Property g_b_lth As Integer Public Property g_b_cronos As Integer Public Property g_b_diener As Integer Public Property g_b_heavyduty As Integer Public Property g_m_lth As Integer Public Property a_b_optima As Integer Public Property a_b_fullpower As Integer Public Property a_b_hitec As Integer Public Property a_b_agm As Integer Public Property a_b_suv As Integer Public Property a_b_taxi As Integer Public Property a_b_america As Integer Public Property a_b_lth As Integer Public Property a_b_cronos As Integer Public Property a_b_diener As Integer Public Property a_b_heavyduty As Integer End Class Namespace Fluent Public Enum GuidVersion TimeBased = &H1 Reserved = &H2 NameBased = &H3 Random = &H4 End Enum Partial Public Module GuidGenerator Public Const ByteArraySize = 16 Public Const VariantByte = 8 Public Const VariantByteMask = &H3F Public Const VariantByteShift = &H80 Public Const VersionByte = 7 Public Const VersionByteMask = &HF Public Const VersionByteShift = 4 Private Const TimestampByte As Byte = 0 Private Const GuidClockSequenceByte As Byte = 8 Private Const NodeByte As Byte = 10 Private ReadOnly GregorianCalendarStart As DateTimeOffset = New DateTimeOffset(1582, 10, 15, 0, 0, 0, TimeSpan.Zero) Public Property DefaultClockSequence As Byte() Public Property DefaultNode As Byte() Sub New() DefaultClockSequence = New Byte(1) {} DefaultNode = New Byte(5) {} Dim random = New Random random.NextBytes(DefaultClockSequence) random.NextBytes(DefaultNode) End Sub ' 'Function GetVersion(ByVal guid As Guid) As GuidVersion ' Dim bytes = guid.ToByteArray ' Return ((bytes(VersionByte) And &HFF) >> VersionByteShift) 'End Function Function GetDateTimeOffset(ByVal guid As Guid) As DateTimeOffset Dim bytes As Byte() = guid.ToByteArray bytes(VersionByte) = bytes(VersionByte) And CByte(VersionByteMask) bytes(VersionByte) = bytes(VersionByte) Or (CByte(GuidVersion.TimeBased) >> VersionByteShift) Dim timestampBytes = New Byte(7) {} Array.Copy(bytes, TimestampByte, timestampBytes, 0, 8) Dim timestamp As Long = BitConverter.ToInt64(timestampBytes, 0) Dim ticks As Long = timestamp + GregorianCalendarStart.Ticks Return New DateTimeOffset(ticks, TimeSpan.Zero) End Function Function GetDateTime(ByVal guid As Guid) As Date Return GetDateTimeOffset(guid).DateTime End Function Function GetLocalDateTime(ByVal guid As Guid) As Date Return GetDateTimeOffset(guid).LocalDateTime End Function Function GetUtcDateTime(ByVal guid As Guid) As Date Return GetDateTimeOffset(guid).UtcDateTime End Function Function GenerateTimeBasedGuid() As Guid Return GenerateTimeBasedGuid(DateTimeOffset.UtcNow, DefaultClockSequence, DefaultNode) End Function Function GenerateTimeBasedGuid(ByVal dateTime As Date) As Guid Return GenerateTimeBasedGuid(dateTime, DefaultClockSequence, DefaultNode) End Function Function GenerateTimeBasedGuid(ByVal dateTime As DateTimeOffset) As Guid Return GenerateTimeBasedGuid(dateTime, DefaultClockSequence, DefaultNode) End Function Function GenerateTimeBasedGuid(ByVal dateTime As Date, ByVal clockSequence As Byte(), ByVal node As Byte()) As Guid Return GenerateTimeBasedGuid(New DateTimeOffset(dateTime), clockSequence, node) End Function Function GenerateTimeBasedGuid(ByVal dateTime As DateTimeOffset, ByVal clockSequence As Byte(), ByVal node As Byte()) As Guid If clockSequence Is Nothing Then Throw New ArgumentNullException("clockSequence") If node Is Nothing Then Throw New ArgumentNullException("node") If clockSequence.Length <> 2 Then Throw New ArgumentOutOfRangeException("clockSequence", "The clockSequence must be 2 bytes.") If node.Length <> 6 Then Throw New ArgumentOutOfRangeException("node", "The node must be 6 bytes.") Dim ticks = (dateTime - GregorianCalendarStart).Ticks Dim guid = New Byte(15) {} Dim timestamp = BitConverter.GetBytes(ticks) Array.Copy(node, 0, guid, NodeByte, Math.Min(6, node.Length)) Array.Copy(clockSequence, 0, guid, GuidClockSequenceByte, Math.Min(2, clockSequence.Length)) Array.Copy(timestamp, 0, guid, TimestampByte, Math.Min(8, timestamp.Length)) guid(VariantByte) = guid(VariantByte) And CByte(VariantByteMask) guid(VariantByte) = guid(VariantByte) Or CByte(VariantByteShift) guid(VersionByte) = guid(VersionByte) And CByte(VersionByteMask) guid(VersionByte) = guid(VersionByte) Or (CByte(GuidVersion.TimeBased) << VersionByteShift) Return New Guid(guid) End Function End Module End Namespace