Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
Así queda, salvo la primera línea, que en mi XML no existe:

<?xml version="1.0" encoding="UTF-8"?>

No obstante, eso no explica el error "El mensaje ha sido modificado en tránsito o la firma no está bien realizada".

De verdad que no sé en qué proceso se puede estar modificando el contenido del archivo.

A ver si va a ser porque yo estoy en Canarias y hay algún problema con la diferencia horaria...
No es descabellado Prueba a forzar la hora del pc a hora peninsular.
De todas formas la primera línea es necesaria. Y haz caso eel comentario de Band, lo puede modificar la aplicación que envía si no está bien parametrizada.
Responder Con Cita
  #2  
Antiguo 05-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
El envío lo hago tal como indiqué en el primer mensaje, usando el código encontrado en este hilo:

Código Delphi [-]
    RequestBody := TFileStream.Create('firmado.xml', fmOpenRead);

    NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
    NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/xml';
    NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

    AResponse := NetHTTPClient1.Post('https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);

He probado a comentar la siguiente línea:

NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

y ocurre lo mismo.

También he añadido manualmente ANTES DE FIRMAR la línea...

<?xml version="1.0" encoding="UTF-8"?>

...al XML (Delphi no la añade al generar el xml con el databinding) y obtengo el mismo error.

Esta tarde probaré a cambiar la HORA al horario peninsular, a ver si es eso.
Responder Con Cita
  #3  
Antiguo 05-10-2021
Ramon88 Ramon88 is offline
Miembro
 
Registrado: ago 2021
Posts: 157
Poder: 5
Ramon88 Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
El envío lo hago tal como indiqué en el primer mensaje, usando el código encontrado en este hilo:

Código Delphi [-] RequestBody := TFileStream.Create('firmado.xml', fmOpenRead); NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12]; NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/xml'; NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8'; AResponse := NetHTTPClient1.Post('https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);


He probado a comentar la siguiente línea:

NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

y ocurre lo mismo.

También he añadido manualmente ANTES DE FIRMAR la línea...

<?xml version="1.0" encoding="UTF-8"?>

...al XML (Delphi no la añade al generar el xml con el databinding) y obtengo el mismo error.

Esta tarde probaré a cambiar la HORA al horario peninsular, a ver si es eso.

Lo tienes en c#? si es así puedo mandarte mi código en .Net y si tienes alguna duda puedo ayudarte hasta donde pueda...
EDITO: Termino de ver que es delphi,,, pero reitero que yo tenia un problema parecido y era por que luego de firmar no mantenia los espacios. Estas mostrandonos el código donde envias el post, pero creo que el problema está al cargar el XML, o lo que hagas despues de firmarlo.

Última edición por Ramon88 fecha: 05-10-2021 a las 16:54:19.
Responder Con Cita
  #4  
Antiguo 05-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
Cita:
Empezado por Ramon88 Ver Mensaje
Lo tienes en c#? si es así puedo mandarte mi código en .Net y si tienes alguna duda puedo ayudarte hasta donde pueda...
EDITO: Termino de ver que es delphi,,, pero reitero que yo tenia un problema parecido y era por que luego de firmar no mantenia los espacios. Estas mostrandonos el código donde envias el post, pero creo que el problema está al cargar el XML, o lo que hagas despues de firmarlo.
1. He probado lo de la hora peninsular y sigue igual.

2. No entiendo lo de "falta un digest". Si el problema está en el código de la firma (con SecureBlackBox), el código lo he sacado de este mismo hilo, y creo que es el mismo que se usaba para FacturaE (que, por cierto, publiqué yo mismo hace años)

3. He tenido que usar un editor HEX online para comparar ambos archivos: el firmado y el sin firmar, y he encontrado una diferencia:

Archivo SIN firmar (factura.xml):

<CabeceraFactura>
<SerieFactura></SerieFactura>
<NumFactura>164</NumFactura>

Archivo firmado (firmado.xml)

<CabeceraFactura>
<SerieFactura/>
<NumFactura>164</NumFactura>

¿A donde ha ido el </SerieFactura> que falta? ¿Acaso el proceso de firma quita ese dato?

A simple vista es lo único que falta, salvo eso de que me "falta un digest". Si el código que he usado es el que está en este hilo (aquí), no entiendo lo del digest.
Responder Con Cita
  #5  
Antiguo 05-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
1. He probado lo de la hora peninsular y sigue igual.

2. No entiendo lo de "falta un digest". Si el problema está en el código de la firma (con SecureBlackBox), el código lo he sacado de este mismo hilo, y creo que es el mismo que se usaba para FacturaE (que, por cierto, publiqué yo mismo hace años)

3. He tenido que usar un editor HEX online para comparar ambos archivos: el firmado y el sin firmar, y he encontrado una diferencia:

Archivo SIN firmar (factura.xml):

<CabeceraFactura>
<SerieFactura></SerieFactura>
<NumFactura>164</NumFactura>

Archivo firmado (firmado.xml)

<CabeceraFactura>
<SerieFactura/>
<NumFactura>164</NumFactura>

¿A donde ha ido el </SerieFactura> que falta? ¿Acaso el proceso de firma quita ese dato?

A simple vista es lo único que falta, salvo eso de que me "falta un digest". Si el código que he usado es el que está en este hilo (aquí), no entiendo lo del digest.
En un xml si está un campo vacío es equivalente a poner <nombre de campo></nombredecanpo>
Que
</nombre de campo>
No he mirado si las especificaciones indican que mejor no ponerlo que ponerlo vacío en caso de no usar la serie.
Ya lo único que veo es que pongas un ejemplo de unxml firmado(cambiando datos sensibles) para que lo repasemos.
Responder Con Cita
  #6  
Antiguo 05-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
En un xml si está un campo vacío es equivalente a poner <nombre de campo></nombredecanpo>
Que
</nombre de campo>
No he mirado si las especificaciones indican que mejor no ponerlo que ponerlo vacío en caso de no usar la serie.
Ya lo único que veo es que pongas un ejemplo de unxml firmado(cambiando datos sensibles) para que lo repasemos.
Rectifico <nombrecampo/> con la barra al final.
Los campos vacíos siempre se van a ver así después de firmarlo con los firmadores que he visto.
Responder Con Cita
  #7  
Antiguo 06-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
Cita:
Empezado por ermendalenda Ver Mensaje
En un xml si está un campo vacío es equivalente a poner <nombre de campo></nombredecanpo>
Que
</nombre de campo>
No he mirado si las especificaciones indican que mejor no ponerlo que ponerlo vacío en caso de no usar la serie.
Ya lo único que veo es que pongas un ejemplo de unxml firmado(cambiando datos sensibles) para que lo repasemos.
He probado a no incluir la Serie en la factura (si la factura no tiene serie), pero sigue igual.
Por lo tanto, el problema tiene que ser la codificación.

La factura SIN firmar está en UTF-8 SIN BOM. Al menos así me consta con el Notepad++ y con el RJ TextEd.
Y tiene esta línea al principio del XML:

Código:
    <?xml version="1.0" encoding="UTF-8"?>
La factura FIRMADA, también está en UTF-8 SIN BOM, pero la primera línea del XML es así:

Código:
    <?xml version="1.0"?>
Ambas tienen una línea de más en el fichero
img.jpg

Este es el contenido del XML (SIN firmar):

<
Código:
?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111H</NIF>
			<ApellidosNombreRazonSocial>Empresa Emisora</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>42187378L</NIF>
				<ApellidosNombreRazonSocial>DESTINATARIO PEREZ</ApellidosNombreRazonSocial>
				<CodigoPostal>28080</CodigoPostal>
				<Direccion>Calle Madrid 18</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>170</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>10:38:20</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 170</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>136.78</ImporteTotalFactura>
			<RetencionSoportada>0</RetencionSoportada>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>50.00</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior></SerieFacturaAnterior>
			<NumFacturaAnterior>169</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>ihX0a1ouXku0n2MmeC47pcgwR2COanoSVPAcfKgxcIq90lrlk/0zmkqkBvX9Xus4dlms1P+q5IPIOQICaMD0OeXDR8EQ+lksbVE2</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIXXXXXXXXXXXXXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>11111111H</NIF>
			</EntidadDesarrolladora>
			<Nombre>Entidad Desarrolladora</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
</T:TicketBai>

Última edición por Neftali [Germán.Estévez] fecha: 06-10-2021 a las 12:12:42.
Responder Con Cita
  #8  
Antiguo 06-10-2021
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: 19.441
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
Sólo por si ayuda a aclarar el tema.
¿Por casualidad tienes en esa factura algún character extraño (ÑÇáéí,...)?
En la razón social del cliente, o en la empresa,...
__________________
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
  #9  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
He probado a no incluir la Serie en la factura (si la factura no tiene serie), pero sigue igual.
Por lo tanto, el problema tiene que ser la codificación.

La factura SIN firmar está en UTF-8 SIN BOM. Al menos así me consta con el Notepad++ y con el RJ TextEd.
Y tiene esta línea al principio del XML:

Código:
    <?xml version="1.0" encoding="UTF-8"?>
La factura FIRMADA, también está en UTF-8 SIN BOM, pero la primera línea del XML es así:

Código:
    <?xml version="1.0"?>
Ambas tienen una línea de más en el fichero
Archivo Adjunto 3952

Este es el contenido del XML (SIN firmar):

<
Código:
?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai
    xmlns:T="urn:ticketbai:emision"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
    <Cabecera>
        <IDVersionTBAI>1.2</IDVersionTBAI>
    </Cabecera>
    <Sujetos>
        <Emisor>
            <NIF>11111111H</NIF>
            <ApellidosNombreRazonSocial>Empresa Emisora</ApellidosNombreRazonSocial>
        </Emisor>
        <Destinatarios>
            <IDDestinatario>
                <NIF>42187378L</NIF>
                <ApellidosNombreRazonSocial>DESTINATARIO PEREZ</ApellidosNombreRazonSocial>
                <CodigoPostal>28080</CodigoPostal>
                <Direccion>Calle Madrid 18</Direccion>
            </IDDestinatario>
        </Destinatarios>
        <VariosDestinatarios>N</VariosDestinatarios>
        <EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
    </Sujetos>
    <Factura>
        <CabeceraFactura>
            <NumFactura>170</NumFactura>
            <FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
            <HoraExpedicionFactura>10:38:20</HoraExpedicionFactura>
            <FacturaSimplificada>N</FacturaSimplificada>
            <FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
        </CabeceraFactura>
        <DatosFactura>
            <FechaOperacion>04-10-2021</FechaOperacion>
            <DescripcionFactura>Factura 170</DescripcionFactura>
            <DetallesFactura>
                <IDDetalleFactura>
                    <DescripcionDetalle>Linea 1</DescripcionDetalle>
                    <Cantidad>1</Cantidad>
                    <ImporteUnitario>100</ImporteUnitario>
                    <Descuento>0</Descuento>
                    <ImporteTotal>121</ImporteTotal>
                </IDDetalleFactura>
            </DetallesFactura>
            <ImporteTotalFactura>136.78</ImporteTotalFactura>
            <RetencionSoportada>0</RetencionSoportada>
            <Claves>
                <IDClave>
                    <ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
                </IDClave>
            </Claves>
        </DatosFactura>
        <TipoDesglose>
            <DesgloseFactura>
                <Sujeta>
                    <NoExenta>
                        <DetalleNoExenta>
                            <TipoNoExenta>S1</TipoNoExenta>
                            <DesgloseIVA>
                                <DetalleIVA>
                                    <BaseImponible>50.00</BaseImponible>
                                    <TipoImpositivo>0</TipoImpositivo>
                                    <CuotaImpuesto>0.00</CuotaImpuesto>
                                    <TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
                                    <CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
                                    <OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
                                </DetalleIVA>
                            </DesgloseIVA>
                        </DetalleNoExenta>
                    </NoExenta>
                </Sujeta>
            </DesgloseFactura>
        </TipoDesglose>
    </Factura>
    <HuellaTBAI>
        <EncadenamientoFacturaAnterior>
            <SerieFacturaAnterior></SerieFacturaAnterior>
            <NumFacturaAnterior>169</NumFacturaAnterior>
            <FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
            <SignatureValueFirmaFacturaAnterior>ihX0a1ouXku0n2MmeC47pcgwR2COanoSVPAcfKgxcIq90lrlk/0zmkqkBvX9Xus4dlms1P+q5IPIOQICaMD0OeXDR8EQ+lksbVE2</SignatureValueFirmaFacturaAnterior>
        </EncadenamientoFacturaAnterior>
        <Software>
            <LicenciaTBAI>TBAIXXXXXXXXXXXXXXXX</LicenciaTBAI>
            <EntidadDesarrolladora>
                <NIF>11111111H</NIF>
            </EntidadDesarrolladora>
            <Nombre>Entidad Desarrolladora</Nombre>
            <Version>15.5</Version>
        </Software>
        <NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
    </HuellaTBAI>
</T:TicketBai>
Lo he copiado y he generado la firma correctamente, no parece que haya errores en el fichero sin firmar, lo he comprobado con chilkat despues de firmar:

Signature Verified
Number of Reference Digests = 3
Reference 1 digest is valid.
Reference 2 digest is valid.
Reference 3 digest is valid.


Lo que me extraña es que, a tí, despuéss de firmarlo le quite algo a la primera linea, con lo cual sigo pensando que hay un proceso intermedio que mete caracterers, a mi no me quita nada despues de firmarlo, con lo cual empieza a comprobar desde el proceso de Firma que es donde tienes el fallo.

Última edición por ermendalenda fecha: 06-10-2021 a las 12:35:31.
Responder Con Cita
  #10  
Antiguo 05-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
El envío lo hago tal como indiqué en el primer mensaje, usando el código encontrado en este hilo:

Código Delphi [-] RequestBody := TFileStream.Create('firmado.xml', fmOpenRead); NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12]; NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/xml'; NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8'; AResponse := NetHTTPClient1.Post('https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);


He probado a comentar la siguiente línea:

NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

y ocurre lo mismo.

También he añadido manualmente ANTES DE FIRMAR la línea...

<?xml version="1.0" encoding="UTF-8"?>

...al XML (Delphi no la añade al generar el xml con el databinding) y obtengo el mismo error.

Esta tarde probaré a cambiar la HORA al horario peninsular, a ver si es eso.
Parece que lo del UTf-8 y noBOM lo tienes bastante mirado y despues de ver que solo te genera 2 digest, me inclinaria por empezar a revisar los parametros de firma, no sé si SecureBlackBox no lo necesita, pero es raro que no haya que decirle por ejemplo que es tipo de firma XADES;
veo campos vacios:
firmante.r_ID := '';
firmante.r_Metodo_Canonicalization := '';

Y deberia haber un Algoritmo del Metodo canonizador, etc,etc..
...CanonicalizationMethod:="http://www.w3.org/TR/2000/WD-xml-c14n-20000710";
....EnableXAdES := True;
...XAdESVersion :=...
.XAdESForm :=...
Responder Con Cita
  #11  
Antiguo 05-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
Cita:
Empezado por ermendalenda Ver Mensaje
Parece que lo del UTf-8 y noBOM lo tienes bastante mirado y despues de ver que solo te genera 2 digest, me inclinaria por empezar a revisar los parametros de firma, no sé si SecureBlackBox no lo necesita, pero es raro que no haya que decirle por ejemplo que es tipo de firma XADES;
veo campos vacios:
firmante.r_ID := '';
firmante.r_Metodo_Canonicalization := '';

Y deberia haber un Algoritmo del Metodo canonizador, etc,etc..
...CanonicalizationMethod:="http://www.w3.org/TR/2000/WD-xml-c14n-20000710";
....EnableXAdES := True;
...XAdESVersion :=...
.XAdESForm :=...
Esos campos están vacíos porque en el procedure de la firma con SecureBlackBox los relleno manualmente, usando las propias variables, etc. de SecureBlackBox:

sbxXAdESSigner1.SignatureType := cxstEnveloped;
sbxXAdESSigner1.CanonicalizationMethod := cxcmCanon;
sbxXAdESSigner1.HashAlgorithm := firmante.r_Hash_algorithm; // SHA256
sbxXAdESSigner1.XMLElement := ''; // Todo el documento
sbxXAdESSigner1.EnableXAdES := True;
sbxXAdESSigner1.XAdESVersion := xav132;
sbxXAdESSigner1.XAdESForm := xafEPES;
sbxXAdESSigner1.Config('SigPolicyID=' + firmante.r_SigPolicyID); // https://ticketbai.eus/politicafirma');
sbxXAdESSigner1.Config('SigPolicyHash=' + firmante.r_SigPolicyHash); // 39D59C038EBB3B7DF6C61ED2F740B318F0C50F93ADCD35E26BE8FF8E76D21DA8;
sbxXAdESSigner1.Config('SigPolicyHashAlgorithm=' + firmante.r_SigPolicyHashAlgorithm); //=SHA256;
sbxXAdESSigner1.Config('SigPolicyURI=' + firmante.r_SigPolicyURI); //https://ticketbai.eus/politicafirma;
Responder Con Cita
  #12  
Antiguo 05-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
Además de la desaparición de </SerieFactura> en el archivo firmado, que no tengo ni idea de por qué ocurre (y ni siquiera sé si eso solucionará el problema), he estado usando varios editores de texto avanzados (no el bloc de notas) que me dicen la codificación de los archivos generados.

He estado haciendo pruebas, cambiando la codificación antes, después, en el propio XMLDocument, etc. y obtengo resultados diferentes.

De hecho, el propio componente de firma de SecureBlackBoxpermite especificar la codificación del archivo resultante.

Haciendo varias pruebas he conseguido que el XML incluya la línea...

<?xml version="1.0" encoding="UTF-8"?>

pero el archivo firmado la incluye así:

<?xml version="1.0" encoding="utf-8"?> (utf-8 en minúsculas)

Pero no quiero seguir haciendo pruebas si finalmente el problema va a estar en algo más simple, como que falta el cierre de </SerieFactura> en el XML firmado y no sé por qué.
Eso sí sería una causa más que probable para que me devuelva el error que me está dando desde hace días.
Responder Con Cita
  #13  
Antiguo 07-10-2021
carlosMorell carlosMorell is offline
Registrado
 
Registrado: ago 2021
Posts: 7
Poder: 0
carlosMorell Va por buen camino
La firma o las firmas

Una duda sobe la firma o las firmas.

Se supone que hay tres firmas, la de aplicación, la de usuario y la de dispositivo. No termina de cuadrarme esto, pero por lo que he leido es asi. Y que supongo que esto se puede hacer desasistido... o cada vez que emita una factura, he de seleccionar el certificado de la lista de certificados y firmar el xml?

Pero ahora, como incorporo las 3 firmas? o ha de ser una de las tres ? o una que contempla las tres? O es que el software garante ya esta certificado, y se da por supuesto que esa firma esta incluida al usar ese software? Perdón por mis preguntas ya obsoletas... Que veo que andais ya todos en otros pasos del proceso.

Supuestamente con Chilkat se podría automatizar todo esto... y hacerlo de forma desasistida, no?

Tengo que integrarlo en una aplicación desarrollada en Velneo6, que no permite hacer firmas. Alguien tiene el mismo problema? estoy pensando en hacerlo bajo php, o python.o c++ para que sea un .exe que se ejecute desde Velneo... O lo suyo seria una dll.

Gracias!
Responder Con Cita
  #14  
Antiguo 07-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 667
Poder: 18
espinete Va camino a la fama
Hasta ahora yo solo he utilizado dos firmas (usando el mismo certificado, en mi caso)

- Firmar la factura
- Firmar el envío

No sé hasta qué punto hay que certificar el dispositivo... ¿Y si es un software alojado en la nube, por ejemplo, en Azure? Qué se utiliza en ese caso?

Cuál sería el "dispositivo" en ese caso, teniendo en cuenta que en Azure, Google Cloud, AWS, etc. puede haber réplicas exactas de la misma aplicación según el volumen de carga?
Responder Con Cita
  #15  
Antiguo 07-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.764
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por carlosMorell Ver Mensaje
Una duda sobe la firma o las firmas.

Se supone que hay tres firmas, la de aplicación, la de usuario y la de dispositivo. No termina de cuadrarme esto, pero por lo que he leido es asi. Y que supongo que esto se puede hacer desasistido... o cada vez que emita una factura, he de seleccionar el certificado de la lista de certificados y firmar el xml?

Pero ahora, como incorporo las 3 firmas? o ha de ser una de las tres ? o una que contempla las tres? O es que el software garante ya esta certificado, y se da por supuesto que esa firma esta incluida al usar ese software? Perdón por mis preguntas ya obsoletas... Que veo que andais ya todos en otros pasos del proceso.

Supuestamente con Chilkat se podría automatizar todo esto... y hacerlo de forma desasistida, no?

Tengo que integrarlo en una aplicación desarrollada en Velneo6, que no permite hacer firmas. Alguien tiene el mismo problema? estoy pensando en hacerlo bajo php, o python.o c++ para que sea un .exe que se ejecute desde Velneo... O lo suyo seria una dll.

Gracias!
Tema firnas
T
Consigue un certificado de firma (o de autónomo o de dispositivo o de lo que sea) con su clave.
Aún puedes hacer pruebas sin dar dte alta en software grnté(solo es a una clave que te Dan la forales por rellenar un formulario de compromiso de que el software cumple) este para las pruebas aún no te hace falta. Y con la clave que te den la tienes que escribir en el xml en un campo específico, de momento pon cualquier cosa.
Firmar el software (si es una distribución de escritorio(que se instala en un equipo y no se ejecutaen la web o similar) tienes que firmarlo, pero eso no tiene que incluirse en lo que envías. Cada nueva versión tienes que guardar la copia y volver a firmar. (para las pruebas tampoco te hace falta).
Pribldma que tu software no puede firmar:
Aquí cada uno ha hecho cosas distintas en la medida de lo que conoce, facilidad, costes.ll más adaptable a lo que tengas etcc.
Ejemplo usar el firmador.pho que desarrollo un usuario y ejecutarlo con algún servidor php instalado en cualquier sitio. Por ejemplo un servidor XAMPP..
Ejemplo 2, usar librerías que tiene un coste, te facilitan que lo puedes integrar con un montón de softwares, Chilkat, etc.. Usar el firmador de Autofirmacommanline. Exe.
No te preocupes si tu software no puede firmar o enviar. Te recomie do que te relee as todo el hilo (todas la s páginas) que al principio es un poco lío pero lte va a despejar todas las dudas.
Para enviar puedes usar el software de distribución gratuita CURL.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 01:43:24.


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