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
  #501  
Antiguo 01-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Esquema 2, sin envio
....
Hay que tener en cuenta que los XMLS firmados puede cambiar el método de cálculo de HASH, ya que la misma firma lleva implicita un HASH, probablemente los encadenamientos lleven ese HASH, como aún no existen esas definiciones el esquema es aproximado.
Responder Con Cita
  #502  
Antiguo 02-08-2022
nuevo1234 nuevo1234 is offline
Miembro
 
Registrado: abr 2017
Posts: 102
Poder: 8
nuevo1234 Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Código:
<?xml version="1.0" encoding="UTF-8"?>
<SistemaFacturacionAltaFact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">


    <Cabecera>
        <IDVersion>0.1</IDVersion>
        <ObligadoEmision>        
            <NombreRazon>EMPRESA DE PRUEBA, S.A.</NombreRazon>
            <NIF>00000006Y</NIF>
        </ObligadoEmision>
    </Cabecera>    
    <RegistroAltaFacturas>
        <RegistroFacturacion>
            <PeriodoLiquidacion>
                <Ejercicio>2022</Ejercicio>
                <Periodo>3T</Periodo>
            </PeriodoLiquidacion>
            <IdFactura>
                <IdEmisorFactura>
                    <NIF>00000006Y</NIF>
                </IdEmisorFactura>
                <NumSerieFacturaEmisor>84.2.1.2566</NumSerieFacturaEmisor>
                <FechaExpedicionFacturaEmisor>31/07/2022</FechaExpedicionFacturaEmisor>
            </IdFactura>
            <TipoFactura>F2</TipoFactura>
            <FechaOperacion>31/07/2022</FechaOperacion>
            <DescripcionOperacion>VENTA MINORISTA</DescripcionOperacion>
            <Desglose>
                <DetalleDesglose>
                    <ClaveRegimen>01</ClaveRegimen>
                    <CalificacionOperacion>S1</CalificacionOperacion>
                    <TipoImpositivo>4.00</TipoImpositivo>
                    <BaseImponibleOimporteNoSujeto>1.00</BaseImponibleOimporteNoSujeto>
                    <CuotaRepercutida>0.04</CuotaRepercutida>
                </DetalleDesglose>
            </Desglose>
            <ImporteTotal>1.04</ImporteTotal>
            <EncadenamientoFacturaAnterior>
                <IDEmisorFacturaAnterior>00000006Y</IDEmisorFacturaAnterior>
                <NumSerieFacturaAnterior>84.2.1.2565</NumSerieFacturaAnterior>
                <FechaExpedicionFacturaAnterior>31/07/2022</FechaExpedicionFacturaAnterior>
                <HuellaFacturaAnterior>9yYI6U89U3IUIQE345EUGWEBsd7EKFCBP9trtYUJSD0JFFKJKrtthAuysfadfWPE</HuellaFacturaAnterior>
        
            </EncadenamientoFacturaAnterior>
            
            <SistemaInformatico>
                <NombreRazon>SISTEMAS INFORMATICOS TPV</NombreRazon>
                <NIF>00000006Y</NIF>
                <IdSistemaInformatico>IDENTIFICADOR AEAT XXXX</IdSistemaInformatico>
                <Version>46.243.1</Version>
                <NumeroInstalacion>45</NumeroInstalacion>
                <TipoUsoSistema>01</TipoUsoSistema>
            </SistemaInformatico>
        </RegistroFacturacion>
        
        <DatosControl>
            <Huella>005948F5A441A56ABF584804036409719AB89892608FD708BAB8AE5088C896AD</Huella>
            <TipoHash>01</TipoHash>
            <FechaGenRegistro>31/07/2022</FechaGenRegistro>
            <HoraGenRegistro>09:00:07</HoraGenRegistro>
            <HusoHorarioGenRegistro>02</HusoHorarioGenRegistro>
        </DatosControl>
    </RegistroAltaFacturas>
</SistemaFacturacionAltaFact>
Sigo teniendo la duda de si la hiella va en base64 o en hexadeccimal, ya que elsha256 ocupa 44 caracteres y el hex64 y aunque hayan definido una longitud maxima de 64 en el futuo pueden decidirotro tipo de hash y lo mismo esta preparado para sha512... o lo que venga
Me faltaban un par de campos
Código:
<CalificacionOperacion>S1</CalificacionOperacion> <CuotaRepercutida>0.04</CuotaRepercutida>
SHA-256 es un hash de 64 dígitos hexadecimales (un resumen, por ejemplo bd4526534df7b33772c2f1ee26d97c39ff11379c8848e4e19d74ad849ef66423) casi único de un tamaño fijo de 256 bits (32 bytes). Un hash solo se calcula en una dirección y no se puede decodificar de vuelta.

Por tanto la definición del SHA-256 ya indican que son 64 digitos en hexadecimal. Entiendo que no hay duda
Responder Con Cita
  #503  
Antiguo 02-08-2022
nuevo1234 nuevo1234 is offline
Miembro
 
Registrado: abr 2017
Posts: 102
Poder: 8
nuevo1234 Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hay que tener en cuenta que los XMLS firmados puede cambiar el método de cálculo de HASH, ya que la misma firma lleva implicita un HASH, probablemente los encadenamientos lleven ese HASH, como aún no existen esas definiciones el esquema es aproximado.
No entiendo. En la firma ya va el hash de los datos que se firman pero con otro algoritmo???
Responder Con Cita
  #504  
Antiguo 02-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por nuevo1234 Ver Mensaje
No entiendo. En la firma ya va el hash de los datos que se firman pero con otro algoritmo???
Nada, he mezclado ticketbai con verifactu, la firma (en caso de que no envies será necesaria firma o timestamp o lo que digan) llevará su hash de firma, pero nada que ver con el hash de la huella.
Hegenerado el xml con SoapUI como.indicabas a través del wdsl, lo pondré mañana.
En él podemos ver como se construye el envío con la posibilidad de incluir varias altas con facturas de simplificadas, normales,rectificativas
, sustitutivas o de anulación

Cada vez tengo más claro que con lo de la huella el encadenamiento de la anulación está mal definida o va a ser una cosa rara de blockchain

Última edición por ermendalenda fecha: 02-08-2022 a las 19:16:11.
Responder Con Cita
  #505  
Antiguo 02-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por nuevo1234 Ver Mensaje
SHA-256 es un hash de 64 dígitos hexadecimales (un resumen, por ejemplo bd4526534df7b33772c2f1ee26d97c39ff11379c8848e4e19d74ad849ef66423) casi único de un tamaño fijo de 256 bits (32 bytes). Un hash solo se calcula en una dirección y no se puede decodificar de vuelta.

Por tanto la definición del SHA-256 ya indican que son 64 digitos en hexadecimal. Entiendo que no hay duda

Por supuesto el hash es solo en un sentido y es indescifrable(teoricamente ya qur tenemos los futuros quantum que los 256 se los van a comer con patatas y te generarán en un futuro multiples posibles textos descifrados que serviran de referencia para romper el cifrado y dar posibles resultados con tecnología inversa. ya estan trabajando en nuevos protocolos de cifrado)
El sha256=256bits
256bits=64caracteres hexadecimales=32caracteres ascii

Última edición por ermendalenda fecha: 02-08-2022 a las 19:45:08.
Responder Con Cita
  #506  
Antiguo 02-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Por supuesto el hash es solo en un sentido y es indescifrable(teoricamente ya qur tenemos los futuros quantum que los 256 se los van a comer con patatas y te generarán en un futuro multiples posibles textos descifrados que serviran de referencia para romper el cifrado y dar posibles resultados con tecnología inversa. ya estan trabajando en nuevos protocolos de cifrado)
El sha256=256bits
256bits=64caracteres hexadecimales=32caracteres ascii
Pues eso como bien dices son 256bits pero se puede representar en la base que se desee o se indique en cada situación y para los xmls suelen usarse hexa o b64
Responder Con Cita
  #507  
Antiguo 02-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Soap

Código:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ds="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" 
xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <ds:AltaFactuSistemaFacturacion>
         <sf:Cabecera>
            <sf:IDVersion>?</sf:IDVersion>
            <sf:ObligadoEmision>
               <sf:NombreRazon>?</sf:NombreRazon>
               <sf:NIF>?</sf:NIF>
               <!--Optional:-->
               <sf:NombreRazonRepresentante>?</sf:NombreRazonRepresentante>
               <!--Optional:-->
               <sf:NIFRepresentante>?</sf:NIFRepresentante>
            </sf:ObligadoEmision>
         </sf:Cabecera>
         <!--1 to 1000 repetitions:-->
         <ds:RegistroAltaFacturas>
            <ds:RegistroFacturacion>
               <sf:PeriodoLiquidacion>
                  <sf:Ejercicio>?</sf:Ejercicio>
                  <sf:Periodo>?</sf:Periodo>
               </sf:PeriodoLiquidacion>
               <sf:IDFactura>
                  <sf:IDEmisorFactura>
                     <sf:NIF>?</sf:NIF>
                  </sf:IDEmisorFactura>
                  <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                  <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
               </sf:IDFactura>
               <sf:TipoFactura>?</sf:TipoFactura>
               <!--Optional:-->
               <sf:TipoRectificativa>?</sf:TipoRectificativa>
               <!--Optional:-->
               <sf:FacturasRectificadas>
                  <!--1 to 1000 repetitions:-->
                  <sf:IDFacturaRectificada>
                     <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                     <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
                  </sf:IDFacturaRectificada>
               </sf:FacturasRectificadas>
               <!--Optional:-->
               <sf:FacturasSustituidas>
                  <!--1 to 1000 repetitions:-->
                  <sf:IDFacturasSustituida>
                     <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                     <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
                  </sf:IDFacturasSustituida>
               </sf:FacturasSustituidas>
               <!--Optional:-->
               <sf:ImporteRectificacion>
                  <sf:BaseRectificada>?</sf:BaseRectificada>
                  <sf:CuotaRectificada>?</sf:CuotaRectificada>
                  <!--Optional:-->
                  <sf:CuotaRecargoRectificado>?</sf:CuotaRecargoRectificado>
               </sf:ImporteRectificacion>
               <!--Optional:-->
               <sf:FechaOperacion>?</sf:FechaOperacion>
               <!--Optional:-->
               <sf:NumRegistroAcuerdoFacturacion>?</sf:NumRegistroAcuerdoFacturacion>
               <!--Optional:-->
               <sf:NumRegistroAcuerdoSistemaInformatico>?</sf:NumRegistroAcuerdoSistemaInformatico>
               <sf:DescripcionOperacion>?</sf:DescripcionOperacion>
               <!--Optional:-->
               <sf:RefExterna>?</sf:RefExterna>
               <!--Optional:-->
               <sf:FacturaSimplificadaArticulos7.2_7.3>?</sf:FacturaSimplificadaArticulos7.2_7.3>
               <!--Optional:-->
               <sf:FacturaSinIdentifDestinatarioArticulo6.1.d>?</sf:FacturaSinIdentifDestinatarioArticulo6.1.d>
               <!--Optional:-->
               <sf:Macrodato>?</sf:Macrodato>
               <!--Optional:-->
               <sf:EmitidaPorTercerosODestinatario>?</sf:EmitidaPorTercerosODestinatario>
               <!--Optional:-->
               <sf:Tercero>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <!--Optional:-->
                  <sf:NIFRepresentante>?</sf:NIFRepresentante>
               </sf:Tercero>
               <!--Optional:-->
               <sf:Contraparte>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <!--Optional:-->
                  <sf:NIFRepresentante>?</sf:NIFRepresentante>
               </sf:Contraparte>
               <sf:Desglose>
                  <!--1 to 10 repetitions:-->
                  <sf:DetalleDesglose>
                     <sf:ClaveRegimen>?</sf:ClaveRegimen>
                     <!--Optional:-->
                     <sf:CalificacionOperacion>?</sf:CalificacionOperacion>
                     <!--Optional:-->
                     <sf:OperacionExenta>?</sf:OperacionExenta>
                     <!--Optional:-->
                     <sf:TipoImpositivo>?</sf:TipoImpositivo>
                     <sf:BaseImponibleOimporteNoSujeto>?</sf:BaseImponibleOimporteNoSujeto>
                     <!--Optional:-->
                     <sf:BaseImponibleACoste>?</sf:BaseImponibleACoste>
                     <!--Optional:-->
                     <sf:CuotaRepercutida>?</sf:CuotaRepercutida>
                     <!--Optional:-->
                     <sf:TipoRecargoEquivalencia>?</sf:TipoRecargoEquivalencia>
                     <!--Optional:-->
                     <sf:CuotaRecargoEquivalencia>?</sf:CuotaRecargoEquivalencia>
                  </sf:DetalleDesglose>
               </sf:Desglose>
               <sf:ImporteTotal>?</sf:ImporteTotal>
               <!--Optional:-->
               <sf:EntidadSucedida>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <sf:NIF>?</sf:NIF>
               </sf:EntidadSucedida>
               <sf:EncadenamientoFacturaAnterior>
                  <sf:IDEmisorFacturaAnterior>
                     <sf:NIF>?</sf:NIF>
                  </sf:IDEmisorFacturaAnterior>
                  <sf:NumSerieFacturaAnterior>?</sf:NumSerieFacturaAnterior>
                  <sf:FechaExpedicionFacturaAnterior>?</sf:FechaExpedicionFacturaAnterior>
                  <sf:HuellaFacturaAnterior>?</sf:HuellaFacturaAnterior>
               </sf:EncadenamientoFacturaAnterior>
               <sf:SistemaInformatico>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <sf:IdSistemaInformatico>?</sf:IdSistemaInformatico>
                  <sf:Version>?</sf:Version>
                  <sf:NumeroInstalacion>?</sf:NumeroInstalacion>
                  <sf:TipoUsoSistema>?</sf:TipoUsoSistema>
               </sf:SistemaInformatico>
            </ds:RegistroFacturacion>
            <ds:DatosControl>
               <sf:Huella>?</sf:Huella>
               <sf:TipoHash>?</sf:TipoHash>
               <sf:FechaGenRegistro>?</sf:FechaGenRegistro>
               <sf:HoraGenRegistro>?</sf:HoraGenRegistro>
               <sf:HusoHorarioGenRegistro>?</sf:HusoHorarioGenRegistro>
               <!--Optional:-->
               <sf:Incidencia>?</sf:Incidencia>
            </ds:DatosControl>
         </ds:RegistroAltaFacturas>
      </ds:AltaFactuSistemaFacturacion>
   </soapenv:Body>
</soapenv:Envelope>
Responder Con Cita
  #508  
Antiguo 03-08-2022
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Código:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ds="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd" 
xmlns:sf="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
   <soapenv:Header/>
   <soapenv:Body>
      <ds:AltaFactuSistemaFacturacion>
         <sf:Cabecera>
            <sf:IDVersion>?</sf:IDVersion>
            <sf:ObligadoEmision>
               <sf:NombreRazon>?</sf:NombreRazon>
               <sf:NIF>?</sf:NIF>
               <!--Optional:-->
               <sf:NombreRazonRepresentante>?</sf:NombreRazonRepresentante>
               <!--Optional:-->
               <sf:NIFRepresentante>?</sf:NIFRepresentante>
            </sf:ObligadoEmision>
         </sf:Cabecera>
         <!--1 to 1000 repetitions:-->
         <ds:RegistroAltaFacturas>
            <ds:RegistroFacturacion>
               <sf:PeriodoLiquidacion>
                  <sf:Ejercicio>?</sf:Ejercicio>
                  <sf:Periodo>?</sf:Periodo>
               </sf:PeriodoLiquidacion>
               <sf:IDFactura>
                  <sf:IDEmisorFactura>
                     <sf:NIF>?</sf:NIF>
                  </sf:IDEmisorFactura>
                  <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                  <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
               </sf:IDFactura>
               <sf:TipoFactura>?</sf:TipoFactura>
               <!--Optional:-->
               <sf:TipoRectificativa>?</sf:TipoRectificativa>
               <!--Optional:-->
               <sf:FacturasRectificadas>
                  <!--1 to 1000 repetitions:-->
                  <sf:IDFacturaRectificada>
                     <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                     <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
                  </sf:IDFacturaRectificada>
               </sf:FacturasRectificadas>
               <!--Optional:-->
               <sf:FacturasSustituidas>
                  <!--1 to 1000 repetitions:-->
                  <sf:IDFacturasSustituida>
                     <sf:NumSerieFacturaEmisor>?</sf:NumSerieFacturaEmisor>
                     <sf:FechaExpedicionFacturaEmisor>?</sf:FechaExpedicionFacturaEmisor>
                  </sf:IDFacturasSustituida>
               </sf:FacturasSustituidas>
               <!--Optional:-->
               <sf:ImporteRectificacion>
                  <sf:BaseRectificada>?</sf:BaseRectificada>
                  <sf:CuotaRectificada>?</sf:CuotaRectificada>
                  <!--Optional:-->
                  <sf:CuotaRecargoRectificado>?</sf:CuotaRecargoRectificado>
               </sf:ImporteRectificacion>
               <!--Optional:-->
               <sf:FechaOperacion>?</sf:FechaOperacion>
               <!--Optional:-->
               <sf:NumRegistroAcuerdoFacturacion>?</sf:NumRegistroAcuerdoFacturacion>
               <!--Optional:-->
               <sf:NumRegistroAcuerdoSistemaInformatico>?</sf:NumRegistroAcuerdoSistemaInformatico>
               <sf:DescripcionOperacion>?</sf:DescripcionOperacion>
               <!--Optional:-->
               <sf:RefExterna>?</sf:RefExterna>
               <!--Optional:-->
               <sf:FacturaSimplificadaArticulos7.2_7.3>?</sf:FacturaSimplificadaArticulos7.2_7.3>
               <!--Optional:-->
               <sf:FacturaSinIdentifDestinatarioArticulo6.1.d>?</sf:FacturaSinIdentifDestinatarioArticulo6.1.d>
               <!--Optional:-->
               <sf:Macrodato>?</sf:Macrodato>
               <!--Optional:-->
               <sf:EmitidaPorTercerosODestinatario>?</sf:EmitidaPorTercerosODestinatario>
               <!--Optional:-->
               <sf:Tercero>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <!--Optional:-->
                  <sf:NIFRepresentante>?</sf:NIFRepresentante>
               </sf:Tercero>
               <!--Optional:-->
               <sf:Contraparte>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <!--Optional:-->
                  <sf:NIFRepresentante>?</sf:NIFRepresentante>
               </sf:Contraparte>
               <sf:Desglose>
                  <!--1 to 10 repetitions:-->
                  <sf:DetalleDesglose>
                     <sf:ClaveRegimen>?</sf:ClaveRegimen>
                     <!--Optional:-->
                     <sf:CalificacionOperacion>?</sf:CalificacionOperacion>
                     <!--Optional:-->
                     <sf:OperacionExenta>?</sf:OperacionExenta>
                     <!--Optional:-->
                     <sf:TipoImpositivo>?</sf:TipoImpositivo>
                     <sf:BaseImponibleOimporteNoSujeto>?</sf:BaseImponibleOimporteNoSujeto>
                     <!--Optional:-->
                     <sf:BaseImponibleACoste>?</sf:BaseImponibleACoste>
                     <!--Optional:-->
                     <sf:CuotaRepercutida>?</sf:CuotaRepercutida>
                     <!--Optional:-->
                     <sf:TipoRecargoEquivalencia>?</sf:TipoRecargoEquivalencia>
                     <!--Optional:-->
                     <sf:CuotaRecargoEquivalencia>?</sf:CuotaRecargoEquivalencia>
                  </sf:DetalleDesglose>
               </sf:Desglose>
               <sf:ImporteTotal>?</sf:ImporteTotal>
               <!--Optional:-->
               <sf:EntidadSucedida>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <sf:NIF>?</sf:NIF>
               </sf:EntidadSucedida>
               <sf:EncadenamientoFacturaAnterior>
                  <sf:IDEmisorFacturaAnterior>
                     <sf:NIF>?</sf:NIF>
                  </sf:IDEmisorFacturaAnterior>
                  <sf:NumSerieFacturaAnterior>?</sf:NumSerieFacturaAnterior>
                  <sf:FechaExpedicionFacturaAnterior>?</sf:FechaExpedicionFacturaAnterior>
                  <sf:HuellaFacturaAnterior>?</sf:HuellaFacturaAnterior>
               </sf:EncadenamientoFacturaAnterior>
               <sf:SistemaInformatico>
                  <sf:NombreRazon>?</sf:NombreRazon>
                  <!--You have a CHOICE of the next 2 items at this level-->
                  <sf:NIF>?</sf:NIF>
                  <sf:IDOtro>
                     <!--Optional:-->
                     <sf:CodigoPais>?</sf:CodigoPais>
                     <sf:IDType>?</sf:IDType>
                     <sf:ID>?</sf:ID>
                  </sf:IDOtro>
                  <sf:IdSistemaInformatico>?</sf:IdSistemaInformatico>
                  <sf:Version>?</sf:Version>
                  <sf:NumeroInstalacion>?</sf:NumeroInstalacion>
                  <sf:TipoUsoSistema>?</sf:TipoUsoSistema>
               </sf:SistemaInformatico>
            </ds:RegistroFacturacion>
            <ds:DatosControl>
               <sf:Huella>?</sf:Huella>
               <sf:TipoHash>?</sf:TipoHash>
               <sf:FechaGenRegistro>?</sf:FechaGenRegistro>
               <sf:HoraGenRegistro>?</sf:HoraGenRegistro>
               <sf:HusoHorarioGenRegistro>?</sf:HusoHorarioGenRegistro>
               <!--Optional:-->
               <sf:Incidencia>?</sf:Incidencia>
            </ds:DatosControl>
         </ds:RegistroAltaFacturas>
      </ds:AltaFactuSistemaFacturacion>
   </soapenv:Body>
</soapenv:Envelope>
Hola. ¿Ese XML lo has conseguido utlizando el WSDL?. ¿Podrías decirme como lo haces?. Yo ahora lo estoy intentando haciendo la llamada "GetsfSOAP" para monitorizar en el evento Before y After, pero únicamente me devuelve que la URL está aún si definir.

Estoy probando de esta manera a ver si consigo algo:

Código:
procedure TForm2.Button1Click(Sender: TObject);
var
 regFact : FacturasEmitidasType;
 result : Array_Of_RespuestaExpedidaType;
 arrayfacturas : Array_Of_FacturasEmitidasType;

begin
   regFact := FacturasEmitidasType.Create;
   regFact.RegistroFacturacion := RegistroFacturacionType.create;

   regFact.DatosControl := DatosControlType.Create;

   regFact.RegistroFacturacion.PeriodoLiquidacion := PeriodoLiquidacion.Create;
   regFact.RegistroFacturacion.PeriodoLiquidacion.Ejercicio := '22';
    try
      SetLength(arrayfacturas, 1);
      arrayfacturas[0] := regFact;
      Result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(arrayfacturas);
    finally
     // Elimino todos los objetos creados
      regFact.Destroy;
    end;
end;
Responder Con Cita
  #509  
Antiguo 03-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Hola. ¿Ese XML lo has conseguido utlizando el WSDL?. ¿Podrías decirme como lo haces?. Yo ahora lo estoy intentando haciendo la llamada "GetsfSOAP" para monitorizar en el evento Before y After, pero únicamente me devuelve que la URL está aún si definir.

Estoy probando de esta manera a ver si consigo algo:

Código:
procedure TForm2.Button1Click(Sender: TObject);
var
 regFact : FacturasEmitidasType;
 result : Array_Of_RespuestaExpedidaType;
 arrayfacturas : Array_Of_FacturasEmitidasType;

begin
   regFact := FacturasEmitidasType.Create;
   regFact.RegistroFacturacion := RegistroFacturacionType.create;

   regFact.DatosControl := DatosControlType.Create;

   regFact.RegistroFacturacion.PeriodoLiquidacion := PeriodoLiquidacion.Create;
   regFact.RegistroFacturacion.PeriodoLiquidacion.Ejercicio := '22';
    try
      SetLength(arrayfacturas, 1);
      arrayfacturas[0] := regFact;
      Result := GetsfSOAP(true, '', HTTPRIO1).AltaFactuSistemaFacturacion(arrayfacturas);
    finally
     // Elimino todos los objetos creados
      regFact.Destroy;
    end;
end;
Hola con la herramienta soapui como comentó el usuario usuario1234
Te lo puedes descargar gratititamente y generar en un momento, lo vas a ver rápido pero tambien hay muchos tutoriales si lo buscas en Google
Yo he cambiado los prefijos que me había generado que no me gusta mucho que ponga sum: sum1: ...
Es una lástima que uan no haya puesto la referencia del servicio web (Res) de pruebas. Por eso te da error
Responder Con Cita
  #510  
Antiguo 03-08-2022
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola con la herramienta soapui como comentó el usuario usuario1234
Te lo puedes descargar gratititamente y generar en un momento, lo vas a ver rápido pero tambien hay muchos tutoriales si lo buscas en Google
Yo he cambiado los prefijos que me había generado que no me gusta mucho que ponga sum: sum1: ...
Es una lástima que uan no haya puesto la referencia del servicio web (Res) de pruebas. Por eso te da error
Bueno, con eso una parte parece que ya me la has resulto.

El problema viene después para el envío de la petición, que me temo que desde Delphi 2007 voy a tener problemas con el certificado. ¿Verdad?
Responder Con Cita
  #511  
Antiguo 03-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Post

Cita:
Empezado por nincillo Ver Mensaje
Bueno, con eso una parte parece que ya me la has resulto.

El problema viene después para el envío de la petición, que me temo que desde Delphi 2007 voy a tener problemas con el certificado. ¿Verdad?
Para nada. No hay problema. Ya verás, el secreto está en curl ya he hecho un shell de envíos de soap con curl.exe y el certificado es un fichero pt2 o pfx.
Ya iré poniéndolo.

Última edición por ermendalenda fecha: 03-08-2022 a las 22:30:30.
Responder Con Cita
  #512  
Antiguo 03-08-2022
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Para nada. No hay problema. Ya verás, el secreto está en curl ya he hecho un shell de envíos de soap con curl.exe y el certificado es un fichero pt2 o pfx.
Ya iré poniéndolo.
Buff, no sabes el peso que me quitas de encima.

Si quieres que te ayude con algún tipo de prueba, ya me dices...

Un saludo.
Responder Con Cita
  #513  
Antiguo 03-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Buff, no sabes el peso que me quitas de encima.

Si quieres que te ayude con algún tipo de prueba, ya me dices...

Un saludo.
En poco tiempo lo pongo que hay que poner la línea de envío y una explicación
Ve adelantandando mirando el funcionamiento de curl.exe , échale un vistazo a los parámetros para que lo asimiles rápido.
Esto está al alcance de todos los desarrolladores, da igual que programen en cobol delphi versiones antiguas, vb6..

Última edición por ermendalenda fecha: 03-08-2022 a las 22:57:29.
Responder Con Cita
  #514  
Antiguo 04-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Envio De Soap

Hola, para los desarrolladores que tenemos lenguajes "Arcaicos", hay 2 soluciones que pasan por Curl.exe y depende de la construcción final del SOAP.
Aunque debes revisar a ver si delphi 2007 tiene librería curl.
Este metodo de envio lo uso para Factura Electrónica y funciona perfectamente, Faceb y Faceb2b por Soap.

Vamos a explicar los parametros del envio:

*El envio(Ojo este es para Factura electronica, aún no tenemos los parametros para Verifactu:

Código:
curl --connect-timeout 10 --insecure -A "FacturaePHP/1.7.1" -H "SOAPAction: https://webservice.face.gob.es#enviarFactura" --data "@C:\....\...\archivo.xml" --cert-type P12 --cert c:\....\fichero_certificado.pfx:clave -H "Content-Type: text/xml" https://se-face-webservice.redsara.es/facturasspp2 -o C:\....\Respuesta_face_o.html -D C:\...\Respuesta_face_D.html
Que consta de varias partes:
--connect-timeout 10 ----> Tiempo de espera ante eventuales problemas de conexión, es recomeendable por que hay casos en que se eterniza la conexión si hay un problema.

--insecure ----> Puede ser necesario para qyue se admitan conexiones SSl poco seguras

-A "FacturaePHP/1.7.1" --> Variable CURLOPT_USERAGENT, pueden solicitar que tenga un contenido especifico en caso de factura electrónica es la versión del esquema utilizado: FacturaPhp/1.7.1

-H "SOAPAction: https://webservice.face.gob.es#enviarFactura" ----> Equivale a la variable CURLOPT_HTTPHEADER= Cabecera de Envio.

-H "Content-Type: text/xml" ----> Otro Contenido de la variable CURLOPT_HTTPHEADER
--data "@C:\tpvision\Facturarealcanasta_FICTICIO_fichero.xml" ---> Fichero a Enviar, construido con el Soap

--cert-type P12 --cert c:\....\fichero_certificado.pfx:clave ----> Certificado Electronico y clave, ojo con esto ya que es demasiado visible, hay que intentar que la ejecución al menos sea invisible y no dejar rastro.

https://se-face-webservice.redsara.es/facturasspp2 ----> Servicio WEB/RES

-o C:\....\Respuesta_face_o.html --> Respuestaen XML se envia al fichero indicado

-D C:\...\Respuesta_face_D.html ---> Respuesta Simple Ok,Ko, Error xxx.., igualmente se envia al ficherro indicado, noponer el mismo qu en -o


Si en la composicion del Soap pidieran, como en Face algun dato del certificado, por ejemplo la variable publica, el soap podrias hacerlo con php, que eso es otra historia que si hace falta ya lo pondré, y en ese caso el envio lo pdrias hacer tambien en php:

Este sería el envio del soap en php, que tambien puedes ejecutarlo con un comando curl desde cualquier aplicacion, si fuera necesario ampliaré esto::
Código:
    $ch = curl_init();
    curl_setopt_array($ch, array(
      CURLOPT_URL => $GLOBALS['endpoint'],
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_POST => 1,
      CURLOPT_POSTFIELDS => $req,
      CURLOPT_HTTPHEADER => array(
        "Content-Type: text/xml",
        "SOAPAction: " . $soapAction
      ),
      CURLOPT_USERAGENT => "FacturaePHP/" . $GLOBALS["version"]
    ));
    $res = curl_exec($ch);
    curl_close($ch);
    unset($ch);

Última edición por ermendalenda fecha: 04-08-2022 a las 08:39:40.
Responder Con Cita
  #515  
Antiguo 04-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Una cosa que es jodida:
Curl usa certificados propios (con caducidad) para ejecutarse,así que tened en cuenta que en algún momento hay que actualizarlo.
El último de curl.exe caduca en 2028, que además coincide con la intención global de cambiar los métodos de cifrado actuales, hashes y todo lo que venga. Por eso pienso que han reservado un campo en el que indican el algoritmo para el calculo de hash y actualmente solo admite el sha256

Última edición por ermendalenda fecha: 04-08-2022 a las 09:05:02.
Responder Con Cita
  #516  
Antiguo 04-08-2022
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola, para los desarrolladores que tenemos lenguajes "Arcaicos", hay 2 soluciones que pasan por Curl.exe y depende de la construcción final del SOAP.
Aunque debes revisar a ver si delphi 2007 tiene librería curl.
Este metodo de envio lo uso para Factura Electrónica y funciona perfectamente, Faceb y Faceb2b por Soap.

Vamos a explicar los parametros del envio:

*El envio(Ojo este es para Factura electronica, aún no tenemos los parametros para Verifactu:

Código:
curl --connect-timeout 10 --insecure -A "FacturaePHP/1.7.1" -H "SOAPAction: https://webservice.face.gob.es#enviarFactura" --data "@C:\....\...\archivo.xml" --cert-type P12 --cert c:\....\fichero_certificado.pfx:clave -H "Content-Type: text/xml" https://se-face-webservice.redsara.es/facturasspp2 -o C:\....\Respuesta_face_o.html -D C:\...\Respuesta_face_D.html
Que consta de varias partes:
--connect-timeout 10 ----> Tiempo de espera ante eventuales problemas de conexión, es recomeendable por que hay casos en que se eterniza la conexión si hay un problema.

--insecure ----> Puede ser necesario para qyue se admitan conexiones SSl poco seguras

-A "FacturaePHP/1.7.1" --> Variable CURLOPT_USERAGENT, pueden solicitar que tenga un contenido especifico en caso de factura electrónica es la versión del esquema utilizado: FacturaPhp/1.7.1

-H "SOAPAction: https://webservice.face.gob.es#enviarFactura" ----> Equivale a la variable CURLOPT_HTTPHEADER= Cabecera de Envio.

-H "Content-Type: text/xml" ----> Otro Contenido de la variable CURLOPT_HTTPHEADER
--data "@C:\tpvision\Facturarealcanasta_FICTICIO_fichero.xml" ---> Fichero a Enviar, construido con el Soap

--cert-type P12 --cert c:\....\fichero_certificado.pfx:clave ----> Certificado Electronico y clave, ojo con esto ya que es demasiado visible, hay que intentar que la ejecución al menos sea invisible y no dejar rastro.

https://se-face-webservice.redsara.es/facturasspp2 ----> Servicio WEB/RES

-o C:\....\Respuesta_face_o.html --> Respuestaen XML se envia al fichero indicado

-D C:\...\Respuesta_face_D.html ---> Respuesta Simple Ok,Ko, Error xxx.., igualmente se envia al ficherro indicado, noponer el mismo qu en -o


Si en la composicion del Soap pidieran, como en Face algun dato del certificado, por ejemplo la variable publica, el soap podrias hacerlo con php, que eso es otra historia que si hace falta ya lo pondré, y en ese caso el envio lo pdrias hacer tambien en php:

Este sería el envio del soap en php, que tambien puedes ejecutarlo con un comando curl desde cualquier aplicacion, si fuera necesario ampliaré esto::
Código:
    $ch = curl_init();
    curl_setopt_array($ch, array(
      CURLOPT_URL => $GLOBALS['endpoint'],
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_POST => 1,
      CURLOPT_POSTFIELDS => $req,
      CURLOPT_HTTPHEADER => array(
        "Content-Type: text/xml",
        "SOAPAction: " . $soapAction
      ),
      CURLOPT_USERAGENT => "FacturaePHP/" . $GLOBALS["version"]
    ));
    $res = curl_exec($ch);
    curl_close($ch);
    unset($ch);
Que bueno!!!.

Voy a leerlo con calma unas cuantas veces para digerirlo bien.

Una duda. ¿Para generar el fichero xml desde SOAP, como lo haría con el SOAPUI que me comentaste en un post anterior?
Responder Con Cita
  #517  
Antiguo 04-08-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Aunque no son definitivos (y es otro hilo), el envío será similar a los que hemos hecho en otros proyectos con hacienda (en concreto con TicketBAI).
Puedes mirar más ejemplos de envío con CURL en estos hilos:
https://www.clubdelphi.com/foros/sho...&postcount=769
https://www.clubdelphi.com/foros/sho...&postcount=737
https://www.clubdelphi.com/foros/sho...&postcount=746
https://www.clubdelphi.com/foros/sho...&postcount=889
https://www.clubdelphi.com/foros/sho...postcount=2996

Aprovechando, que en breve imagino que iremos teniendo algo de código, vamos a utilizar el mismo sistema que otras veces y usaremos el segundo mensaje del hilo para ir poniendo referencias a códigos que los usuarios vayan publicando (el primero queda como resumen de datos importantes).

Así, en este primer mensaje del hilo dejamos el resumen, y en este segundo iremos añadiendo referencia a códigos útiles.

Es similar a lo que hemos hecho aquí con TicketBAI (segundo hilo con códigos útiles). Pongo aquí la referencia de TicketBAI, porque como el sistema es muy similar, posiblemente los códigos que hemos utilizado para TicketBAI/Batuz serán iguales o muy similares a los que vamos a utilizar en Veri*Factu. Además hay referencias a como hacer las cosas con diferentes componentes e incluso con diferentes lenguajes.

Recomiendo a todos aquellos que estáis empezando a codificar o que todavía no lo habéis hecho y estáis pensando cómo hacerlo que dediquéis antes algo de tiempo a revisar este mensaje (creo que os puede ser útil y ospuede ayudar a haceros una idea de los que vaís a necesitar -en cuando a componentes-.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #518  
Antiguo 04-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Que bueno!!!.

Voy a leerlo con calma unas cuantas veces para digerirlo bien.

Una duda. ¿Para generar el fichero xml desde SOAP, como lo haría con el SOAPUI que me comentaste en un post anterior?
Si el soap es simple lo puedes generar directamente como un archivo de texto respetando las estructuras de los campos/nodos.
Responder Con Cita
  #519  
Antiguo 04-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 865
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Aunque no son definitivos (y es otro hilo), el envío será similar a los que hemos hecho en otros proyectos con hacienda (en concreto con TicketBAI).
Puedes mirar más ejemplos de envío con CURL en estos hilos:
https://www.clubdelphi.com/foros/sho...&postcount=769
https://www.clubdelphi.com/foros/sho...&postcount=737
https://www.clubdelphi.com/foros/sho...&postcount=746
https://www.clubdelphi.com/foros/sho...&postcount=889
https://www.clubdelphi.com/foros/sho...postcount=2996

Aprovechando, que en breve imagino que iremos teniendo algo de código, vamos a utilizar el mismo sistema que otras veces y usaremos el segundo mensaje del hilo para ir poniendo referencias a códigos que los usuarios vayan publicando (el primero queda como resumen de datos importantes).

Así, en este primer mensaje del hilo dejamos el resumen, y en este segundo iremos añadiendo referencia a códigos útiles.

Es similar a lo que hemos hecho aquí con TicketBAI (segundo hilo con códigos útiles). Pongo aquí la referencia de TicketBAI, porque como el sistema es muy similar, posiblemente los códigos que hemos utilizado para TicketBAI/Batuz serán iguales o muy similares a los que vamos a utilizar en Veri*Factu. Además hay referencias a como hacer las cosas con diferentes componentes e incluso con diferentes lenguajes.

Recomiendo a todos aquellos que estáis empezando a codificar o que todavía no lo habéis hecho y estáis pensando cómo hacerlo que dediquéis antes algo de tiempo a revisar este mensaje (creo que os puede ser útil y ospuede ayudar a haceros una idea de los que vaís a necesitar -en cuando a componentes-.
Efectivamente en el hilo de ticketbai hay mucha información que se puede aprovecharm
Responder Con Cita
  #520  
Antiguo 06-08-2022
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 151
Poder: 7
nincillo Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola, para los desarrolladores que tenemos lenguajes "Arcaicos", hay 2 soluciones que pasan por Curl.exe y depende de la construcción final del SOAP.
Aunque debes revisar a ver si delphi 2007 tiene librería curl.
Este metodo de envio lo uso para Factura Electrónica y funciona perfectamente, Faceb y Faceb2b por Soap.

Vamos a explicar los parametros del envio:

*El envio(Ojo este es para Factura electronica, aún no tenemos los parametros para Verifactu:

Código:
curl --connect-timeout 10 --insecure -A "FacturaePHP/1.7.1" -H "SOAPAction: https://webservice.face.gob.es#enviarFactura" --data "@C:\....\...\archivo.xml" --cert-type P12 --cert c:\....\fichero_certificado.pfx:clave -H "Content-Type: text/xml" https://se-face-webservice.redsara.es/facturasspp2 -o C:\....\Respuesta_face_o.html -D C:\...\Respuesta_face_D.html
Que consta de varias partes:
--connect-timeout 10 ----> Tiempo de espera ante eventuales problemas de conexión, es recomeendable por que hay casos en que se eterniza la conexión si hay un problema.

--insecure ----> Puede ser necesario para qyue se admitan conexiones SSl poco seguras

-A "FacturaePHP/1.7.1" --> Variable CURLOPT_USERAGENT, pueden solicitar que tenga un contenido especifico en caso de factura electrónica es la versión del esquema utilizado: FacturaPhp/1.7.1

-H "SOAPAction: https://webservice.face.gob.es#enviarFactura" ----> Equivale a la variable CURLOPT_HTTPHEADER= Cabecera de Envio.

-H "Content-Type: text/xml" ----> Otro Contenido de la variable CURLOPT_HTTPHEADER
--data "@C:\tpvision\Facturarealcanasta_FICTICIO_fichero.xml" ---> Fichero a Enviar, construido con el Soap

--cert-type P12 --cert c:\....\fichero_certificado.pfx:clave ----> Certificado Electronico y clave, ojo con esto ya que es demasiado visible, hay que intentar que la ejecución al menos sea invisible y no dejar rastro.

https://se-face-webservice.redsara.es/facturasspp2 ----> Servicio WEB/RES

-o C:\....\Respuesta_face_o.html --> Respuestaen XML se envia al fichero indicado

-D C:\...\Respuesta_face_D.html ---> Respuesta Simple Ok,Ko, Error xxx.., igualmente se envia al ficherro indicado, noponer el mismo qu en -o


Si en la composicion del Soap pidieran, como en Face algun dato del certificado, por ejemplo la variable publica, el soap podrias hacerlo con php, que eso es otra historia que si hace falta ya lo pondré, y en ese caso el envio lo pdrias hacer tambien en php:

Este sería el envio del soap en php, que tambien puedes ejecutarlo con un comando curl desde cualquier aplicacion, si fuera necesario ampliaré esto::
Código:
    $ch = curl_init();
    curl_setopt_array($ch, array(
      CURLOPT_URL => $GLOBALS['endpoint'],
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_SSL_VERIFYPEER => 0,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_POST => 1,
      CURLOPT_POSTFIELDS => $req,
      CURLOPT_HTTPHEADER => array(
        "Content-Type: text/xml",
        "SOAPAction: " . $soapAction
      ),
      CURLOPT_USERAGENT => "FacturaePHP/" . $GLOBALS["version"]
    ));
    $res = curl_exec($ch);
    curl_close($ch);
    unset($ch);

Buenos días.
Aprovechando el ejemplo que publicaste he estado haciendo pruebas para el envío de las FacturaE, que actualmente lo estaba haciendo manual, y parece que gracias a tu ejemplo, le voy a poder sacar provecho en automático.
Lo único que he tenido que retocar es la parte donde se indica la url a la que conectarse. Para que funcione bien tuve que dejarlo así:
Código:
"Content-Type: text/xml" -v https://se-face-webservice.redsara.es/facturasspp2"
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
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 09:35:08.


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