FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#181
|
|||
|
|||
Cita:
|
#182
|
|||
|
|||
Cita:
Gracias! |
#183
|
|||
|
|||
Hola, como envio:
defWSDL:='https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroFactEmitidas.wsdl'; defSvc:='siiService'; defPrt:='SuministroFactEmitidasPruebas'; HTTPRIO1.WSDLLocation:=defWSDL; HTTPRIO1.Service:=defSvc; HTTPRIO1.Port:=defPrt; CrearSumLRFacturasEmitidasTest(Peticion); Resultado:=GetsiiSOAP(true,'',HTTPRIO1).SuministroLRFacturasEmitidas(Peticion); Y el certificado: (es necesario tener registrado capicom.dll y la unidad CAPICOM_TLB procedure TForm1.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;Data: Pointer); var Store : IStore; Certs : ICertificates; Cert : ICertificate2; CertContext : ICertContext; PCertContext : PCCERT_CONTEXT; V : OleVariant; const INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84; begin V:=NombreCertificado; { subject del certificado instalado: Nombre de la empresa } Store := CoStore.Create; Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre } if Certs.Count > 0 then begin Cert:=IInterface(Certs.Item[1]) as ICertificate2; CertContext:=Cert as ICertContext; CertContext.Get_CertContext(Integer(PCertContext)); if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then begin ShowMessage( 'Internet SSL certificate. Something went wrong' ); end; end; end; |
#184
|
||||
|
||||
gracias Francisco1973
ese código funciona perfecto. saludos ! |
#185
|
||||
|
||||
Podeis subir un ejemplo completo en un proyecto delphi.
Gracias. |
#186
|
||||
|
||||
keys ...
simplemente añade este evento en tu objeto(S) thttprio, y en V:= coloca el nombre de tu certificado. descarga y mira el adjunto que coloco y listo. No tienes si quiera que quitar el código anterior para gestionar el certificado. Saludos ! y por fa, siento ser pesado si alguien tiene algún ejemplo de facturas recibidas y emitidas de sujeto pasivo que lo postee. (lo que yo llamo la factura recibida, y su autofactura). Código:
procedure TfEmitidas.emitidasHTTPWebNode1BeforePost( const HTTPReqResp: THTTPReqResp; Data: Pointer); var Store : IStore; Certs : ICertificates; Cert : ICertificate2; CertContext : ICertContext; PCertContext : PCCERT_CONTEXT; V : OleVariant; const INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84; begin V:=' *** EL NOMBRE DE TU CERTIFICADO ***'; Store := CoStore.Create; Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED ); Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre } if Certs.Count > 0 then begin Cert:=IInterface(Certs.Item[1]) as ICertificate2; CertContext:=Cert as ICertContext; CertContext.Get_CertContext(Integer(PCertContext)); if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then begin ShowMessage( 'Internet SSL certificate. Something went wrong' ); end; end; end; |
#187
|
||||
|
||||
Puedes indicarme los includes para
Store : IStore; Certs : ICertificates; Cert : ICertificate2; CertContext : ICertContext; Estoy un poco espeso y no los encuentro. |
#188
|
||||
|
||||
estan en el CAPICOM_TLB.pas (que he colocado en la descarga del post)
|
#189
|
||||
|
||||
Lo primero gracias. Ya he conseguido enviar mas de 12 facturas a la vez. Sigo sin entender por que 12 si y 13, el certificado es el mismo. Pero bueno funciona que es lo que importa.
En cuanto a la factura recibida de inversión sujeto pasivo no he empezado a generar recibidas, será lo siguiente. Pero la norma dice lo siguiente : 4.4. ¿Cómo se registra una operación con inversión del sujeto pasivo (art. 84.Uno.2º y 4º de la Ley del IVA) siempre que tengan su origen en operaciones distintas a las adquisiciones intracomunitarias de bienes y servicios)? El destinatario de la operación registrará los datos de la factura recibida consignando en el campo de tipo de operación la clave “S2: Sujeta – No Exenta – Inv. Suj. Pasivo”. Deberá calcular y consignar la cuota soportada correspondiente a dicha factura así como cumplimentar el campo “Cuota Deducible”. No registrará dato alguno en el Libro Registro de Facturas Expedidas. No se cual es el problema. |
#190
|
|||
|
|||
Yo creo que más que el problema de enviar más de 12 Facturas, está el problema de que las facturas enviadas se procesan al terminar el bloque de envío, por lo que si en el mismo bloque se envía una factura emitida y el pago de esta, va a devolver siempre el error de factura no encontrada.
En la charla lo apuntaron y seguramente para la revisión de este mes de Marzo (que ya dijeron que iban a estar cambiando los webservices cada mes) ya esté solucionado y se puedan enviar todas las facturas de golpe. Hasta entonces yo estoy haciendo envíos unitarios por cada línea que leo del fichero csv, así me aseguro que la factura enviada se queda grabada en su base de datos. |
#191
|
||||
|
||||
Cita:
El truco esta en no enviar en un mismo envío facturas que hagan referencia a facturas que esten en el mismo envío. En cuanto a los pagos de una factura no hay problema por que tienen que ir por envíos separados, es decir la factura se envia por el suministro de facturas y el pago por el de pagos. Es decir nunca pueden ir juntas. Un Saludo. |
#192
|
|||
|
|||
Cómo extraer datos de la respuesta
Creo que hasta ahora nadie ha tratado este tema.
Ya he conseguido enviar facturas emitidas y recibidas sin problema, y también capturo la respuesta del WS. Pero cuando ésta se recibe, en formato XML, cómo debe de hacerse el parsing para extraer el resultado de cada factura, para saber si ha sido aceptada o rechazada, y en este último caso, cuál es la causa de la no admisión, con el fin de comunicarlo al usuario y tomar las medidas que haga falta. Visualmente es muy fácil de determinar leyendo la respuesta, pero ¿cómo automatizar ese proceso? Alguien que tenga la amabilidad de publicar un poco de código, supongo que con las clases TXMLDocument y/o IXMLDocument, pues el uso de Node y ChildNodes, es bastante liado. Muchas gracias. Saludos, |
#193
|
||||
|
||||
Hola. Al llamar a la funcion GetssiSoap este devuelve una respuesta según el tipo de envío que se este realizando. Por ejemplo lo siguiente es un envio de facturas Emitidas. El orden de las respuestas es la misma que las que se envían.
Busca en los mensajes anteriores que hay un ejemplo entero de envío y se trata esto. Un Saludo. |
#194
|
|||
|
|||
Nuevo documento publicado:
http://www.agenciatributaria.es/stat...ondiciones.pdf Es interesante a efectos técnicos. Aunque tampoco dice mucho más de lo que ya se sabía a través de los WSDL. Última edición por Nasca fecha: 23-02-2017 a las 17:43:41. |
#195
|
|||
|
|||
Cita:
Muchas gracias por tu respuesta. Con toda seguridad será de gran utilidad para la mayoría, aunque en mi caso, dado que envío un XML ya creado y cerrado, y recibo una respuesta también en formato XML, tendré que trabajarme un parsing manual para extraer el estado de cada factura y guardarlo en disco para conocimiento del usuario. Ya sé que Delphi tiene el TXMLDocument y los ChildNodes y demás, pero me inclino por meter la respuesta en un TStringList y analizarla línea a línea. Nada del otro mundo. Gracias de nuevo, y saludos cordiales, |
#196
|
|||
|
|||
Cita:
De todas formas miraré si hay algún parser que lo simplifique sin dependencias, que se compile en la propia aplicación. Si alguno conoce alguno le agradecería referencias. Miraré: https://github.com/Fr0sT-Brutal/awes...hi#xmljsonyaml |
#197
|
|||
|
|||
Cita:
Si alguien tuviese una idea mejor se le agradecería. Saludos, Última edición por CMB fecha: 24-02-2017 a las 16:29:20. Razón: Error en TStringList |
#198
|
|||
|
|||
Yo estoy haciendolo en c#. Ya me conecto pero no soy capaz de enviar el xml. ¿podríais pasarme un xml válido? O incluso orientarme en c#.
Gracias |
#199
|
|||
|
|||
Cita:
Y en este documento, distribuido por la AEAT, tienes varios ejemplos más: SII_Descripcion_ServicioWeb_v0.5_es_es.pdf Código:
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd"> <soapenv:Header/> <soapenv:Body> <siiLR:SuministroLRFacturasEmitidas> <sii:Cabecera> <sii:IDVersionSii>0.5</sii:IDVersionSii> <sii:Titular> <sii:NombreRazon>AAAAAAAAAAAAAAAAAAAA</sii:NombreRazon> <sii:NIF>XXXXXXXXX</sii:NIF> </sii:Titular> <sii:TipoComunicacion>A0</sii:TipoComunicacion> </sii:Cabecera> <siiLR:RegistroLRFacturasEmitidas> <sii:PeriodoImpositivo> <sii:Ejercicio>2017</sii:Ejercicio> <sii:Periodo>02</sii:Periodo> </sii:PeriodoImpositivo> <siiLR:IDFactura> <sii:IDEmisorFactura> <sii:NIF>XXXXXXXXX</sii:NIF> </sii:IDEmisorFactura> <sii:NumSerieFacturaEmisor>99103</sii:NumSerieFacturaEmisor> <sii:FechaExpedicionFacturaEmisor>15-02-2017</sii:FechaExpedicionFacturaEmisor> </siiLR:IDFactura> <siiLR:FacturaExpedida> <sii:TipoFactura>F1</sii:TipoFactura> <sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia> <sii:ImporteTotal>5.69</sii:ImporteTotal> <sii:DescripcionOperacion>COMPRA-XXXXXX</sii:DescripcionOperacion> <sii:Contraparte> <sii:NombreRazon>BBBBBBBBBBBBBBBBBBBB</sii:NombreRazon> <sii:NIF>YYYYYYYYY</sii:NIF> </sii:Contraparte> <sii:TipoDesglose> <sii:DesgloseFactura> <sii:Sujeta> <sii:NoExenta> <sii:TipoNoExenta>S1</sii:TipoNoExenta> <sii:DesgloseIVA> <sii:DetalleIVA> <sii:TipoImpositivo>21.00</sii:TipoImpositivo> <sii:BaseImponible>4.70</sii:BaseImponible> <sii:CuotaRepercutida>0.99</sii:CuotaRepercutida> </sii:DetalleIVA> </sii:DesgloseIVA> </sii:NoExenta> </sii:Sujeta> </sii:DesgloseFactura> </sii:TipoDesglose> </siiLR:FacturaExpedida> </siiLR:RegistroLRFacturasEmitidas> <siiLR:RegistroLRFacturasEmitidas> <sii:PeriodoImpositivo> <sii:Ejercicio>2017</sii:Ejercicio> <sii:Periodo>02</sii:Periodo> </sii:PeriodoImpositivo> <siiLR:IDFactura> <sii:IDEmisorFactura> <sii:NIF>XXXXXXXXX</sii:NIF> </sii:IDEmisorFactura> <sii:NumSerieFacturaEmisor>99101</sii:NumSerieFacturaEmisor> <sii:FechaExpedicionFacturaEmisor>14-02-2017</sii:FechaExpedicionFacturaEmisor> </siiLR:IDFactura> <siiLR:FacturaExpedida> <sii:TipoFactura>F1</sii:TipoFactura> <sii:ClaveRegimenEspecialOTrascendencia>01</sii:ClaveRegimenEspecialOTrascendencia> <sii:ImporteTotal>275.00</sii:ImporteTotal> <sii:DescripcionOperacion>COMPRA-XXXXXX</sii:DescripcionOperacion> <sii:Contraparte> <sii:NombreRazon>CCCCCCCCCCCCCCCCCCCC</sii:NombreRazon> <sii:NIF>ZZZZZZZZZ</sii:NIF> </sii:Contraparte> <sii:TipoDesglose> <sii:DesgloseFactura> <sii:Sujeta> <sii:NoExenta> <sii:TipoNoExenta>S1</sii:TipoNoExenta> <sii:DesgloseIVA> <sii:DetalleIVA> <sii:TipoImpositivo>10.00</sii:TipoImpositivo> <sii:BaseImponible>250.00</sii:BaseImponible> <sii:CuotaRepercutida>25.00</sii:CuotaRepercutida> </sii:DetalleIVA> </sii:DesgloseIVA> </sii:NoExenta> </sii:Sujeta> </sii:DesgloseFactura> </sii:TipoDesglose> </siiLR:FacturaExpedida> </siiLR:RegistroLRFacturasEmitidas> </siiLR:SuministroLRFacturasEmitidas> </soapenv:Body> </soapenv:Envelope> |
#200
|
|||
|
|||
Cita:
Alguien ha tenido el mismo problema? Veo que a los que utilizan Delphi les funciona perfectamente en ese aspecto. Ya no sé si es un problema del lenguaje utilizado o de los cambios que está realizando la Administración... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco | keys | Internet | 4246 | Hace 2 Días 11:17:09 |
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 |
|