![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
/* X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); X509Certificate2Collection certCollection = store.Certificates.Find(X509FindType.FindBySubjectName, "tecnologica", false); foreach (var item in certCollection) { Debug.Print("Item: " + item.SubjectName.Name); } X509Certificate2 cert = certCollection[0]; */ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(connectionString_HACIENDA); request.ContentType = "text/xml"; request.Method = "POST"; request.Credentials = CredentialCache.DefaultCredentials; if (CERTIFICADO != null) { request.ClientCertificates.Add(CERTIFICADO); byte[] bytes = System.Text.Encoding.UTF8.GetBytes(root.ToString()); request.ContentLength = bytes.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); using (HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse()) { using (Stream responseStream = webResponse.GetResponseStream()) { using (StreamReader responseStreamReader = new StreamReader(responseStream, true)) { response = responseStreamReader.ReadToEnd(); responseStreamReader.Close(); } responseStream.Close(); } webResponse.Close(); } Debug.Print("Respuesta: " + response); } Antes si me funcionaba. Antes cogía el certificado a "pelo" que es el código que está comentado al principio. Después lo cambié por algo más visual para que el usuario escogiese el certificado, pero el funcionamiento es idéntico. |
|
#2
|
|||
|
|||
|
Y te da el mismo error si descomentas lo de arriba y lo hacías como antes?
|
|
#3
|
|||
|
|||
|
Hola. Yo lo intenté hacer con Delphi 7 primero, pero tuve muchos problemas con los WDSL. Incluso importándolos con XE no pude utilizarlos en Delphi 7 por que seguía dando problemas al serializar. Todo lo demás funcionaba bien, SOAP, certificado, etc., pero no conseguí que serializara bien, así que me tuve que pasar a XE2.
|
|
#4
|
|||
|
|||
|
¿Sabeís como puedo modificar este código que en principio me funciona para las facturas emitidas?
Quiero dos cosas: 1. Capturar el SOAP Request que envío y el Soap Response que recibo 2. Poder seleccionar un certificado de los disponibles. Ya que somos un grupo de empresas. He utilizado el código VB.NET que comentaba el compañero poniendo el fichero xml en la carpeta y ya no me genera ningún error, pero no recibo respuesta. ¿Existe alguna forma de ver el mensaje SOAP de respuesta? Dim store As Security.Cryptography.X509Certificates.X509Store = New Security.Cryptography.X509Certificates.X509Store(StoreName.My, StoreLocation.CurrentUser) store.Open(Security.Cryptography.X509Certificates.OpenFlags.ReadOnly) Dim CertificadoCorrecto As New System.Security.Cryptography.X509Certificates.X509Certificate2 ' search store ' Dim col As New X509Certificate2Collection 'col = store.Certificates.Find(X509FindType.FindByIssuerName, "FNMT", True) Dim ListCert As String = "" For Each x In store.Certificates MsgBox(x.Subject) Next Respuesta2RichTextBox.Text = ListCert CertificadoCorrecto = store.Certificates(0) '(5) ' Objeto que almacenara la respuesta de la funcion del Web Service Dim resp As New ServiceReference1.RespuestaLRFEmitidasType ' Ws Dim Ws As New ServiceReference1.siiSOAPClient Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto Ws.ClientCredentials.UseIdentityConfiguration = True ' Asignamos el certificado: Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto ' ---------------------------------------------------------------------------------------- ' ---------------------------------------------------------------------------------------- Dim _SuministroLRFacturasEmitidas As New SuministroLRFacturasEmitidas '-------------------------------------------------------------------------- Try Dim x As New XmlSerializer(_SuministroLRFacturasEmitidas.GetType, "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd") ' A FileStream is needed to read the XML document. Dim filename As String = "facturaEmitidaMODEL.XML" Using reader As New FileStream(filename, FileMode.Open) _SuministroLRFacturasEmitidas = CType(x.Deserialize(reader), SuministroLRFacturasEmitidas) End Using ' SI QUEREMOS SOBREESCRIBIR EL XML ANTES DE ENVIAR: ' SOBREESCRIBIMOS DATS FORM ANTES SEND: _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = Trim(TextBoxRazonSocialEmisor.Text) _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = Trim(TextBoxNIFEmisor.Text) '(...) '// se hace la llamada a la funcion suministrada por el WS resp = Ws.SuministroLRFacturasEmitidas(_SuministroLRFacturasEmitidas) Catch ex As Exception MsgBox(ex.Message) ' Respuesta2RichTextBox = ex.Message Finally 'Me.Cursor = Cursors.Default 'Threading.Thread.Sleep(5000) 'ProgressBar1.Style = ProgressBarStyle.Continuous ''ProgressBar1.Value = ProgressBar1.Maximum End Try |
|
#5
|
|||
|
|||
|
Factura simplificada, ¿qué NIF y qué nombre fiscal?
He buscado por todo el hilo y creo que este tema no se ha tratado todavía.
Con las facturas simplificadas ya sabemos que el tag TipoFactura tiene que ser F2. Pero cuando se emiten tiques, en la gran mayoría de los casos el vendedor no tiene constancia del NIF ni del nombre fiscal del cliente. Por ejemplo, en una ferretería o en una frutería. Entonces, al enviar una petición al webservice que contiene ese tipo de facturas, ¿que hay que poner en los tags NombreRazon y NIF? ¿Se pueden dejar en blanco? No he sabido encontrar la respuesta en el documento SII_Descripcion_ServicioWeb_v0.6.pdf, si es que la hay. ¿Alguien tiene idea de ello? Saludos, Última edición por CMB fecha: 17-03-2017 a las 11:22:58. Razón: Error sintáctico |
|
#6
|
|||
|
|||
|
Cita:
Sin embargo, si envías contenido se valida y es aceptado. Si lo envías en blanco sale un bonito= "Valor o tipo incorrecto del campo: NombreRazon" Conclusión, no envíes Contraparte y no des mas información de la estrictamente necesaria. |
|
#7
|
|||
|
|||
|
Cita:
Aclarado. Muchas gracias, Nasca. |
|
#8
|
|||
|
|||
|
Cómo rellenar <DescripcionOperacion>
Aunque en unos pocos casos hay requerimientos especiales, de modo general, ¿se puede introducir en <DescripcionOperacion> una descripción genérica, siempre la misma, como SUMINISTRO DE BIENES O SERVICIOS, o hay que obligar al usuario a que, en cada factura emitida y recibida, escriba la descripción adecuada, con la pérdida de tiempo que ello conlleva?
Algunas empresas siempre venden lo mismo, pero otras tienen una gran variación, y mezclan género físico con horas de trabajo y otros servicios. En los ejemplos de la AEAT ponen diversas frases, como Objeto FACTURA, CompraXXXXXXX, VentaXXXXXXX, CASO PRUEBA, etc. ¿Cómo lo habéis resuelto vosotros? Muchas gracias. Saludos, |
|
#9
|
|||
|
|||
|
Cita:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco | keys | Internet | 4524 | Hace 4 Días 16:17:40 |
| AEAT envio de datos vía Webservice problemas con WSDL | CelsoO | Internet | 11 | 09-10-2019 20:03:41 |
| webService Soap de la Administración Digital Española notific@ | apicito | Internet | 3 | 31-01-2017 11:25:28 |
| Error en Webservice funcion envio de sms | webmasterplc | Delphi para la web | 5 | 25-07-2013 20:10:29 |
| Problemas con envío de XML a un WebService | davidvamo | Internet | 1 | 13-02-2007 15:49:20 |
|