Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2017
juabero juabero is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 6
Poder: 0
juabero Va por buen camino
Ayuda por Favos

Este es el codigo que utilizo

Dim certificado As New X509Certificate2("d:\certificado.cer", "password")

Dim servicio As New SuministroLRFacturasEmitidas
servicio.Cabecera = New CabeceraSii
servicio.Cabecera.IDVersionSii = VersionSiiType.Item06
servicio.Cabecera.TipoComunicacion = ClaveTipoComunicacionType.A0
servicio.Cabecera.Titular = New PersonaFisicaJuridicaESType
servicio.Cabecera.Titular.NIF = "xxxxx"

servicio.Cabecera.Titular.NIFRepresentante = "yyyyy"
servicio.Cabecera.Titular.NombreRazon = "Mi Empresa"
Try
Dim fac As New LRfacturasEmitidasType
fac.PeriodoImpositivo = New RegistroSiiPeriodoImpositivo
fac.PeriodoImpositivo.Ejercicio = 2017
fac.PeriodoImpositivo.Periodo = TipoPeriodoType.Item03

Dim fact As New IDFacturaExpedidaType
Dim EmisorFactura = New IDFacturaExpedidaTypeIDEmisorFactura
EmisorFactura.NIF = "xxxxx"
fact.IDEmisorFactura = EmisorFactura
fact.NumSerieFacturaEmisor = "SN0001"
fact.FechaExpedicionFacturaEmisor = "14-03-2017"
fac.IDFactura = fact


fac.FacturaExpedida = New FacturaExpedidaType
fac.FacturaExpedida.TipoFactura = ClaveTipoFacturaType.F1

fac.FacturaExpedida.ClaveRegimenEspecialOTrascendencia = IdOperacionesTrascendenciaTributariaType.Item01
fac.FacturaExpedida.DescripcionOperacion = "VENTAS GENERALES"
fac.FacturaExpedida.ImporteTotal = "121.0"
fac.FacturaExpedida.BaseImponibleACoste = "100"
fac.FacturaExpedida.DescripcionOperacion = "Ventas"

fac.FacturaExpedida.Contraparte = New PersonaFisicaJuridicaType
fac.FacturaExpedida.Contraparte.NombreRazon = "Mi Cliente"
fac.FacturaExpedida.Contraparte.NIFRepresentante = "xxxxx"
Dim a As New IDOtroType
a.CodigoPais = CountryType2.ES
a.CodigoPaisSpecified = True
a.IDType = PersonaFisicaJuridicaIDTypeType.Item02
a.ID = "xxxxxx"
fac.FacturaExpedida.Contraparte.Item = a

fac.FacturaExpedida.TipoDesglose = New FacturaExpedidaTypeTipoDesglose

Dim tipo As New TipoSinDesgloseType
tipo.Sujeta = New SujetaType
tipo.Sujeta.NoExenta = New SujetaTypeNoExenta
Dim tipoivas(0) As DetalleIVAEmitidaType
Dim tipoiva As New DetalleIVAEmitidaType
tipoiva.BaseImponible = "100.00"
tipoiva.TipoImpositivo = "21.00"
tipoiva.CuotaRepercutida = "21.00"
tipoivas(0) = tipoiva
tipo.Sujeta.NoExenta.DesgloseIVA = tipoivas
fac.FacturaExpedida.TipoDesglose.Item = tipo


Dim facturas(0) As LRfacturasEmitidasType
facturas(0) = fac
servicio.RegistroLRFacturasEmitidas = facturas
Dim enviar As New ServiceEmitidas.siiSOAPClient
Dim respuesta As New RespuestaLRFEmitidasType
Try

enviar.ClientCredentials.ClientCertificate.Certificate = certificado
respuesta = enviar.SuministroLRFacturasEmitidas(servicio)
Catch ex As Exception
Throw New System.ServiceModel.ProtocolException(ex.Message)
End Try
Catch ex As System.ServiceModel.ProtocolException
Dim visor As New visor
visor.WebBrowser1.DocumentText = ex.Message
visor.ShowDialog()
Dim pepe As String = ""
End Try
Responder Con Cita
  #2  
Antiguo 07-04-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
Cita:
Empezado por juabero Ver Mensaje
Este es el codigo que utilizo

Dim certificado As New X509Certificate2("d:\certificado.cer", "password")

Dim servicio As New SuministroLRFacturasEmitidas
servicio.Cabecera = New CabeceraSii
servicio.Cabecera.IDVersionSii = VersionSiiType.Item06
servicio.Cabecera.TipoComunicacion = ClaveTipoComunicacionType.A0
servicio.Cabecera.Titular = New PersonaFisicaJuridicaESType
servicio.Cabecera.Titular.NIF = "xxxxx"

servicio.Cabecera.Titular.NIFRepresentante = "yyyyy"
servicio.Cabecera.Titular.NombreRazon = "Mi Empresa"
Try
Dim fac As New LRfacturasEmitidasType
fac.PeriodoImpositivo = New RegistroSiiPeriodoImpositivo
fac.PeriodoImpositivo.Ejercicio = 2017
fac.PeriodoImpositivo.Periodo = TipoPeriodoType.Item03

Dim fact As New IDFacturaExpedidaType
Dim EmisorFactura = New IDFacturaExpedidaTypeIDEmisorFactura
EmisorFactura.NIF = "xxxxx"
fact.IDEmisorFactura = EmisorFactura
fact.NumSerieFacturaEmisor = "SN0001"
fact.FechaExpedicionFacturaEmisor = "14-03-2017"
fac.IDFactura = fact


fac.FacturaExpedida = New FacturaExpedidaType
fac.FacturaExpedida.TipoFactura = ClaveTipoFacturaType.F1

fac.FacturaExpedida.ClaveRegimenEspecialOTrascendencia = IdOperacionesTrascendenciaTributariaType.Item01
fac.FacturaExpedida.DescripcionOperacion = "VENTAS GENERALES"
fac.FacturaExpedida.ImporteTotal = "121.0"
fac.FacturaExpedida.BaseImponibleACoste = "100"
fac.FacturaExpedida.DescripcionOperacion = "Ventas"

fac.FacturaExpedida.Contraparte = New PersonaFisicaJuridicaType
fac.FacturaExpedida.Contraparte.NombreRazon = "Mi Cliente"
fac.FacturaExpedida.Contraparte.NIFRepresentante = "xxxxx"
Dim a As New IDOtroType
a.CodigoPais = CountryType2.ES
a.CodigoPaisSpecified = True
a.IDType = PersonaFisicaJuridicaIDTypeType.Item02
a.ID = "xxxxxx"
fac.FacturaExpedida.Contraparte.Item = a

fac.FacturaExpedida.TipoDesglose = New FacturaExpedidaTypeTipoDesglose

Dim tipo As New TipoSinDesgloseType
tipo.Sujeta = New SujetaType
tipo.Sujeta.NoExenta = New SujetaTypeNoExenta
Dim tipoivas(0) As DetalleIVAEmitidaType
Dim tipoiva As New DetalleIVAEmitidaType
tipoiva.BaseImponible = "100.00"
tipoiva.TipoImpositivo = "21.00"
tipoiva.CuotaRepercutida = "21.00"
tipoivas(0) = tipoiva
tipo.Sujeta.NoExenta.DesgloseIVA = tipoivas
fac.FacturaExpedida.TipoDesglose.Item = tipo


Dim facturas(0) As LRfacturasEmitidasType
facturas(0) = fac
servicio.RegistroLRFacturasEmitidas = facturas
Dim enviar As New ServiceEmitidas.siiSOAPClient
Dim respuesta As New RespuestaLRFEmitidasType
Try

enviar.ClientCredentials.ClientCertificate.Certificate = certificado
respuesta = enviar.SuministroLRFacturasEmitidas(servicio)
Catch ex As Exception
Throw New System.ServiceModel.ProtocolException(ex.Message)
End Try
Catch ex As System.ServiceModel.ProtocolException
Dim visor As New visor
visor.WebBrowser1.DocumentText = ex.Message
visor.ShowDialog()
Dim pepe As String = ""
End Try
Tienes puesto en el fichero App.config esto así?

<binding name="siiBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
Responder Con Cita
  #3  
Antiguo 07-04-2017
juabero juabero is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 6
Poder: 0
juabero Va por buen camino
Ayuda por favor

Este es mi app.config

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="siiBinding">
<security mode="Transport" >
<transport clientCredentialType="Certificate" />
</security>
</binding>
<binding name="siiBinding2" />
</basicHttpBinding>
<customBinding>
<binding name="siiBinding">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
binding="basicHttpBinding" bindingConfiguration="siiBinding"
contract="ServiceEmitidas.siiSOAP" name="SuministroFactEmitidasPruebas" />
</client>
</system.serviceModel>
Responder Con Cita
  #4  
Antiguo 07-04-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
Cita:
Empezado por juabero Ver Mensaje
Este es mi app.config

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="siiBinding">
<security mode="Transport" >
<transport clientCredentialType="Certificate" />
</security>
</binding>
<binding name="siiBinding2" />
</basicHttpBinding>
<customBinding>
<binding name="siiBinding">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
binding="basicHttpBinding" bindingConfiguration="siiBinding"
contract="ServiceEmitidas.siiSOAP" name="SuministroFactEmitidasPruebas" />
</client>
</system.serviceModel>
Yo esta parte no la tengo puesta:

<customBinding>
<binding name="siiBinding">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
Responder Con Cita
  #5  
Antiguo 07-04-2017
juabero juabero is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 6
Poder: 0
juabero Va por buen camino
Ayuda por Favor

Cita:
Empezado por javi_valencia44 Ver Mensaje
Yo esta parte no la tengo puesta:

<customBinding>
<binding name="siiBinding">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport />
</binding>
</customBinding>
Lo he intentado de todas formas.
A ti te funciona, si es asi pasame un ejemplo por favor
Responder Con Cita
  #6  
Antiguo 07-04-2017
javi_valencia44 javi_valencia44 is offline
Miembro
 
Registrado: mar 2017
Posts: 50
Poder: 8
javi_valencia44 Va por buen camino
Cita:
Empezado por juabero Ver Mensaje
Lo he intentado de todas formas.
A ti te funciona, si es asi pasame un ejemplo por favor
Yo lo hago deserializando el XML en un objeto

Por ejemplo para hacer el suministro de una factura emitida:

Ws = New SII.siiSOAPClient
Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
Ws.ClientCredentials.UseIdentityConfiguration = True
facturas = New SuministroLRFacturasEmitidas
ser = New System.Xml.Serialization.XmlSerializer(facturas.GetType())
facturas = CType(ser.Deserialize(reader), SuministroLRFacturasEmitidas)
resul = New SII.RespuestaLRFEmitidasType
resul = Ws.SuministroLRFacturasEmitidas(facturas)

Dim serializer As New XmlSerializer(resul.GetType())
Dim writer As New StreamWriter(rutaXMLdestino)

serializer.Serialize(writer, resul)
writer.Close()

Has probado que tu certificado es correcto?
Responder Con Cita
  #7  
Antiguo 07-04-2017
juabero juabero is offline
Registrado
NULL
 
Registrado: abr 2017
Posts: 6
Poder: 0
juabero Va por buen camino
Cita:
Empezado por javi_valencia44 Ver Mensaje
Yo lo hago deserializando el XML en un objeto

Por ejemplo para hacer el suministro de una factura emitida:

Ws = New SII.siiSOAPClient
Ws.ClientCredentials.ClientCertificate.Certificate = CertificadoCorrecto
Ws.ClientCredentials.UseIdentityConfiguration = True
facturas = New SuministroLRFacturasEmitidas
ser = New System.Xml.Serialization.XmlSerializer(facturas.GetType())
facturas = CType(ser.Deserialize(reader), SuministroLRFacturasEmitidas)
resul = New SII.RespuestaLRFEmitidasType
resul = Ws.SuministroLRFacturasEmitidas(facturas)

Dim serializer As New XmlSerializer(resul.GetType())
Dim writer As New StreamWriter(rutaXMLdestino)

serializer.Serialize(writer, resul)
writer.Close()

Has probado que tu certificado es correcto?

Parece ser que tu lo estas haciendo con la version 5 y yo con la version 6
la version 6 no tiene "Ws.ClientCredentials.UseIdentityConfiguration = True"

Además he generado el xml y le he puesto a mano en el envelop y lo he mandado por web y funciona

Dime con que visual studio estas desarrollando y la versin de FrameWork
Responder Con Cita
  #8  
Antiguo 09-04-2017
nuevo1234 nuevo1234 is offline
Miembro
 
Registrado: abr 2017
Posts: 102
Poder: 8
nuevo1234 Va por buen camino
Sii

Parece que Hacienda ya ha colgado los formularios para dar de alta facturas.
Responder Con Cita
  #9  
Antiguo 17-05-2017
dgalindosaeta dgalindosaeta is offline
Registrado
NULL
 
Registrado: may 2017
Posts: 2
Poder: 0
dgalindosaeta Va por buen camino
Cita:
Empezado por juabero Ver Mensaje
Este es el codigo que utilizo

Dim certificado As New X509Certificate2("d:\certificado.cer", "password")

Dim servicio As New SuministroLRFacturasEmitidas
servicio.Cabecera = New CabeceraSii
servicio.Cabecera.IDVersionSii = VersionSiiType.Item06
servicio.Cabecera.TipoComunicacion = ClaveTipoComunicacionType.A0
servicio.Cabecera.Titular = New PersonaFisicaJuridicaESType
servicio.Cabecera.Titular.NIF = "xxxxx"

servicio.Cabecera.Titular.NIFRepresentante = "yyyyy"
servicio.Cabecera.Titular.NombreRazon = "Mi Empresa"
Try
Dim fac As New LRfacturasEmitidasType
fac.PeriodoImpositivo = New RegistroSiiPeriodoImpositivo
fac.PeriodoImpositivo.Ejercicio = 2017
fac.PeriodoImpositivo.Periodo = TipoPeriodoType.Item03

Dim fact As New IDFacturaExpedidaType
Dim EmisorFactura = New IDFacturaExpedidaTypeIDEmisorFactura
EmisorFactura.NIF = "xxxxx"
fact.IDEmisorFactura = EmisorFactura
fact.NumSerieFacturaEmisor = "SN0001"
fact.FechaExpedicionFacturaEmisor = "14-03-2017"
fac.IDFactura = fact


fac.FacturaExpedida = New FacturaExpedidaType
fac.FacturaExpedida.TipoFactura = ClaveTipoFacturaType.F1

fac.FacturaExpedida.ClaveRegimenEspecialOTrascendencia = IdOperacionesTrascendenciaTributariaType.Item01
fac.FacturaExpedida.DescripcionOperacion = "VENTAS GENERALES"
fac.FacturaExpedida.ImporteTotal = "121.0"
fac.FacturaExpedida.BaseImponibleACoste = "100"
fac.FacturaExpedida.DescripcionOperacion = "Ventas"

fac.FacturaExpedida.Contraparte = New PersonaFisicaJuridicaType
fac.FacturaExpedida.Contraparte.NombreRazon = "Mi Cliente"
fac.FacturaExpedida.Contraparte.NIFRepresentante = "xxxxx"
Dim a As New IDOtroType
a.CodigoPais = CountryType2.ES
a.CodigoPaisSpecified = True
a.IDType = PersonaFisicaJuridicaIDTypeType.Item02
a.ID = "xxxxxx"
fac.FacturaExpedida.Contraparte.Item = a

fac.FacturaExpedida.TipoDesglose = New FacturaExpedidaTypeTipoDesglose

Dim tipo As New TipoSinDesgloseType
tipo.Sujeta = New SujetaType
tipo.Sujeta.NoExenta = New SujetaTypeNoExenta
Dim tipoivas(0) As DetalleIVAEmitidaType
Dim tipoiva As New DetalleIVAEmitidaType
tipoiva.BaseImponible = "100.00"
tipoiva.TipoImpositivo = "21.00"
tipoiva.CuotaRepercutida = "21.00"
tipoivas(0) = tipoiva
tipo.Sujeta.NoExenta.DesgloseIVA = tipoivas
fac.FacturaExpedida.TipoDesglose.Item = tipo


Dim facturas(0) As LRfacturasEmitidasType
facturas(0) = fac
servicio.RegistroLRFacturasEmitidas = facturas
Dim enviar As New ServiceEmitidas.siiSOAPClient
Dim respuesta As New RespuestaLRFEmitidasType
Try

enviar.ClientCredentials.ClientCertificate.Certificate = certificado
respuesta = enviar.SuministroLRFacturasEmitidas(servicio)
Catch ex As Exception
Throw New System.ServiceModel.ProtocolException(ex.Message)
End Try
Catch ex As System.ServiceModel.ProtocolException
Dim visor As New visor
visor.WebBrowser1.DocumentText = ex.Message
visor.ShowDialog()
Dim pepe As String = ""
End Try

busca mi post y mira el código, he solucionado tu problema, aunque me produce otro de comunicacion SSL/TLS.

En cuanto al tema con el que recuperas el certificado, mejor hazlo así:

Código:
       [SecurityPermission(SecurityAction.LinkDemand,Unrestricted =true)]
        internal static X509Certificate2 EncontrarCertificado(string NombreCertificado)
        {
            X509Certificate2 resultado = null;
            X509Store almacen = null;            

            try
            {
                almacen = new X509Store(StoreLocation.LocalMachine);
                almacen.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

                foreach(X509Certificate2 certificado in almacen.Certificates)
                {
                    string Nombre = certificado.SubjectName.Name;
                    if(Nombre==NombreCertificado)
                    {
                        resultado = certificado;
                        break;
                    }
                }
            }
            catch
            {

            }


            return resultado;
        }
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 2 Semanas 17:29:05
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


La franja horaria es GMT +2. Ahora son las 01:08:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi