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
  #1241  
Antiguo 05-08-2021
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 88
Poder: 3
HerensugeBeltz Va por buen camino
Cita:
Empezado por FranAza Ver Mensaje
Hola HerensugeBeltz,

Como esperan recibir datos en XML (Content-Type: application/xml;charset=UTF-8 ) entonces en body le pones algo en xml, entonces sí te funcionará.
En el body ponemos:
<?xml version="1.0" encoding="utf-8"?>
y luego en selección: raw (XML)
Ferpecto!!!

Era eso lo que me faltaba. Muchas gracias
Responder Con Cita
  #1242  
Antiguo 05-08-2021
FranAza FranAza is offline
Registrado
 
Registrado: ene 2021
Posts: 9
Poder: 0
FranAza Va por buen camino
Buenas,

Creo que no me explique bien en un mensaje anterior cuando dije "Esta petición será un POST sin body"
Mea culpa.

Quise decir que no se enviara nada con sentido, pero claro sí hay que enviar alguna cosa en xml para que el servicio lo trague.

Por eso simplemente ponemos en el body: <?xml version="1.0" encoding="utf-8"?>
y con eso el servicio lo procesa y devuelve el error, y si lo ha procesado ya nos vale para saber que está operativo........

Saludos
Responder Con Cita
  #1243  
Antiguo 06-08-2021
aflores1 aflores1 is offline
Miembro
 
Registrado: jul 2021
Posts: 12
Poder: 0
aflores1 Va por buen camino
pasar pfx a pem php

En php como habeis conseguido pasar el certificado de pfx a pem?¿

Lo estoy intentado de esta forma pero me da error luego el servicio

Código PHP:
function ConvertirCertificadoPEM($certificado,$pass){
    
$rutaCertPem CERTPEM;
    if(!
file_exists($rutaCertPem)){   
    
$res = [];
    
$openSSL openssl_pkcs12_read($certificado$respass);
    if(!
$openSSL) {
        echo 
"Error: ".openssl_error_string();
    }

    
$cert $res['cert'].implode(''$res['extracerts']);
    
file_put_contents($rutaCertPem$cert);
    return 
$rutaCertPem
Responder Con Cita
  #1244  
Antiguo 07-08-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por aflores1 Ver Mensaje
En php como habeis conseguido pasar el certificado de pfx a pem?¿

Lo estoy intentado de esta forma pero me da error luego el servicio

Código PHP:
function ConvertirCertificadoPEM($certificado,$pass){
    
$rutaCertPem CERTPEM;
    if(!
file_exists($rutaCertPem)){   
    
$res = [];
    
$openSSL openssl_pkcs12_read($certificado$respass);
    if(!
$openSSL) {
        echo 
"Error: ".openssl_error_string();
    }

    
$cert $res['cert'].implode(''$res['extracerts']);
    
file_put_contents($rutaCertPem$cert);
    return 
$rutaCertPem
Hola aflores1,

Mira en https://www.clubdelphi.com/foros/sho...&postcount=538
Ahí nuestro colega bilbur tiene su firmador.php
Él hace:
Código PHP:
if (openssl_pkcs12_read($pfx$key$clavecertificado))
    {
    
$this->publicKey    $key["cert"];
    
$this->privateKey   $key["pkey"];
    
$complem              openssl_pkey_get_details(openssl_pkey_get_private($this->privateKey));
    
$this->Modulus        base64_encode($complem['rsa']['n']);
    
$this->Exponent       base64_encode($complem['rsa']['e']);
    } 
Yo obtengo, previamente, cert.pem y pkey.pem con el comando openssl de Linux y los tengo ya almacenados en ese formato:
Código:
openssl pkcs12 -in certificado.pfx -out cert.pem -clcerts -nokeys
openssl pkcs12 -in certificado.pfx -out pkey.pem -nocerts -nodes
Saludos
Responder Con Cita
  #1245  
Antiguo 07-08-2021
Nessie Nessie is offline
Miembro
 
Registrado: ago 2021
Posts: 13
Poder: 0
Nessie Va por buen camino
Campo DESCUENTO en XML

Hola, kaixo,

en primer lugar, gracias por toda la información que habéis colgado en este foro. ¡Excelente!

En segundo lugar, una duda sobre el campo DESCUENTO del XML de TicketBai Gipuzkoa: He visto que el descuento solo se puede aplicar a una línea detalle en concreto. En mi caso, me interesaría aplicar un descuento a la factura completa, no a una línea detalle concreta. No he visto que el XML tenga ese campo. ¿Alguien se encuentra en esta misma tesitura? (Voy a escribir a TicketBai Gipuzkoa para comentarlo, pero me gustaría saber si alguien tiene el mismo problema).

Muchas gracias.
Eskerrik asko.

Última edición por Neftali [Germán.Estévez] fecha: 09-08-2021 a las 08:40:08.
Responder Con Cita
  #1246  
Antiguo 08-08-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 60
Poder: 5
bilbur Va por buen camino
PHP Seguridad en la firma - clave -

Hasta ahora, en desarrollo, guardo las contraseñas de los certificados .pfx en texto claro.
Evidente que esto no puede ser en producción.


Estoy haciendo lo siguiente:


Mediante formulario solicito al cliente su certificado.pfx y su contraseña de importación (la cual no "veo")


Guardo en el directorio que corresponde su certificado.pfx

lo paso y guardo a certificado.pem

y guardo la contraseña encriptada en certificado.pass


De este modo No guardo las contraseñas de importación del certificado y firma en texto claro.


A la hora de la firma desencripto la contraseña guardada en certificado.pass, firmo y destruyo la contraseña desencriptada. (mini modificación firmador.php probado y funcionando)



Cierto es que al final todo depende de la contraseña de encriptar desencriptar, la cual puede ser autogenerada por combinaciones de cif cliente, cif desarrollador, fechas, etc.


Seguro que se me pasa algo y mi pregunta es, ¿Vosotros cómo lo habéis planteado?


Un saludo y gracias


Si alguien necesita el script en PHP para pasar y guardar los certificados.pfx a .pem y .pass que lo diga y lo subo.
Responder Con Cita
  #1247  
Antiguo 08-08-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 112
Poder: 5
unomasmas Va por buen camino
Cita:
Empezado por aflores1 Ver Mensaje
Agrega esto en tu codigo:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Gracias aflores1. Disculpa el retraso en responder a tu sugerencia; estuve liado con otros proyectos...

Hice algunas pruebas pero no parece que estuviera ahí el problema ya que finalmente conseguí que funcionara sin esta línea que propones. Por lo visto, al menos, por ahora, el servidor acepta versiones inferiores de TLS o toma esta versión de forma automática (por lo que he leído es así sólo a partir del framework 3.6 de Net). El problema (los problemas, mejor dicho) eran varios (entrecomillado simple en el json que se pasa en la cabecera, ejercicio incorrecto), pero el último, el relevante, referido al certificado a usar para la conexión, se resolvió con esta indicación por parte del servicio técnico de batuz:

Cita:
Kaixo,

En el entorno de pruebas del sistema de envíos masivos del LROE los datos del interesado y del presentador que se envían en las peticiones al servicio web deben existir en el sistema, ya que se validan. No se deben utilizar razones sociales o nombres y apellidos ficticios ya que se valida tanto el NIF como la razón social, para el caso de la persona jurídica y el nombre y apellidos para la persona física.

Si los datos enviados son reales y aun así indica que la persona interesada o el presentador no está identificado, para dar de alta dichos datos debe entrar en la Sede Electrónica de Bizkaia (www . ebizkaia . eus) con el certificado que está utilizando para el envío de la petición (ver nota) e identificarse entrando en la opción “Mis Gestiones ->Mis Expedientes” que aparece en el menú superior de la pantalla. Al ser la primera vez que entra, le pedirá datos de contacto que se deberán rellenar y guardar.

Con esto, los datos de las figuras del certificado quedarán registrados en el sistema. El alta estará disponible al día siguiente y se podrán utilizar en el sistema de envíos masivos.

Nota: Si el certificado utilizado es un sello de empresa, este no se puede utilizar para entrar en la Sede Electrónica, por lo que, para dar de alta los datos, se deberá mandar a este mismo buzón el NIF, nombre y apellidos para la figura física del certificado y NIF, Razón social y domicilio social para la figura de la empresa del certificado.

Agur bat.
En realidad, creo que era la primera vez que entraba pero no necesité añadir datos como dice y tampoco estuvo disponible al día siguiente sino a los dos días...
Responder Con Cita
  #1248  
Antiguo 08-08-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
Hasta ahora, en desarrollo, guardo las contraseñas de los certificados .pfx en texto claro.
Evidente que esto no puede ser en producción.


Estoy haciendo lo siguiente:


Mediante formulario solicito al cliente su certificado.pfx y su contraseña de importación (la cual no "veo")


Guardo en el directorio que corresponde su certificado.pfx

lo paso y guardo a certificado.pem

y guardo la contraseña encriptada en certificado.pass


De este modo No guardo las contraseñas de importación del certificado y firma en texto claro.


A la hora de la firma desencripto la contraseña guardada en certificado.pass, firmo y destruyo la contraseña desencriptada. (mini modificación firmador.php probado y funcionando)



Cierto es que al final todo depende de la contraseña de encriptar desencriptar, la cual puede ser autogenerada por combinaciones de cif cliente, cif desarrollador, fechas, etc.


Seguro que se me pasa algo y mi pregunta es, ¿Vosotros cómo lo habéis planteado?


Un saludo y gracias


Si alguien necesita el script en PHP para pasar y guardar los certificados.pfx a .pem y .pass que lo diga y lo subo.
Hola bilbur,

Está bien pensado el tema de encriptar la contraseña del certificado del cliente.
Toda protección es poca.

En mi caso, todas mis aplicaciones son webs en Internet.
No pido a mis clientes ningún certificado digital.
Firmo yo los XML de sus facturas con mi propio certificado digital.
Y marco los XML como factura emitida por tercero (nodo EmitidaPorTercerosODestinatario)
Por supuesto, hago un contrato con mis clientes por el que me autorizan a dicha emisión y al envío de sus facturas a Hacienda.

Me da auténtico repelús dejar una aplicación en manos de un cliente (y más en este caso del software garante TicketBAI en el que las multas son de órdago).
Así que les monto una API para que su sistema de facturación se conecte con mi aplicación, que se encarga de todo (confeccionar el XML, firmarlo, almacenarlo, crear el código TBAI, crear el código QR y enviar el XML firmado a Hacienda)

Saludos
Responder Con Cita
  #1249  
Antiguo 08-08-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 112
Poder: 5
unomasmas Va por buen camino
Cita:
Empezado por jaiser Ver Mensaje
Hola!

Tengo una duda sobre la anulación y su contabilización. Si se envia un ticket bai con una factura hay que enviar un ticket bai de anulación y no se puede reutilizar dicho número de factura. No se si está factura al estar anulada no hay que contabilizarla ni enviarla al SII? Habría huecos entonces en la númeración de las facturas en la contabilidad y en el sii. He llamado a guipuzkoa y me han dicho que NO se contabiliza NI se envia al sii, pero no se si realmente es asi, me entran dudas sobre los huecos. Lo más normal será hacer una rectificativa pero en algún caso habrá que preveer el poder anular.
Por lo que entendí el otro día, la anulación es algo excepcional: Creo que puso un caso en que no se llega a completar la compra; por ejemplo se emite ticket por una compra que el cliente rechaza en el mismo momento en que se estaba produciendo. Se anula ese ticket (esa factura), con lo que supuestamente (en teoría) podría volverse a utilizar el número; sin embargo, como queda documentada, entiendo que no puede eliminarse la factura anulada, con lo que quedaría un hueco en la numeración; por eso, creo que la anulación es algo teórico; yo no veo forma de poder usar esta figura; en su lugar, siempre habrá que hacer una factura rectificativa (por devolución de la compra, por ejemplo, en el caso expuesto)...
Responder Con Cita
  #1250  
Antiguo 08-08-2021
unomasmas unomasmas is offline
Miembro
 
Registrado: dic 2019
Posts: 112
Poder: 5
unomasmas Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Si se puede.

No depende del cliente, depende de la operacion. Por ejemplo en una factura puedo meter conceptos sujetos como una venta normal y no sujetos como un suplido. He realizado la prueba y hacienda lo admite correctamente.

Pongo un ejemplo.

Código:
-<TipoDesglose>
             -<DesgloseFactura>
                -<Sujeta>
                 -<NoExenta>
                    -<DetalleNoExenta>
                      <TipoNoExenta>S1</TipoNoExenta>
                         -<DesgloseIVA>
                             -<DetalleIVA>
                                 <BaseImponible>125.00</BaseImponible>
                                 <TipoImpositivo>21.00</TipoImpositivo>
                                 <CuotaImpuesto>26.25</CuotaImpuesto>
                                 <TipoRecargoEquivalencia>0.00</TipoRecargoEquivalencia>
                                 <CuotaRecargoEquivalencia>0.00</CuotaRecargoEquivalencia>
                            </DetalleIVA>
                           -<DetalleIVA>
                               <BaseImponible>125.00</BaseImponible>
                               <TipoImpositivo>10.00</TipoImpositivo>
                               <CuotaImpuesto>12.50</CuotaImpuesto>
                               <TipoRecargoEquivalencia>0.00</TipoRecargoEquivalencia>
                               <CuotaRecargoEquivalencia>0.00</CuotaRecargoEquivalencia>
                             </DetalleIVA>
                          </DesgloseIVA>
                 </DetalleNoExenta>
               </NoExenta>
            </Sujeta>
           -<NoSujeta>
             -<DetalleNoSujeta>
                <Causa>OT</Causa>
                <Importe>31.45</Importe>
              </DetalleNoSujeta>
            </NoSujeta>
</DesgloseFactura>
</TipoDesglose>
Lo que no no se puede enviar es una factura con solo una operación no sujeta.
Pues sí que debiera poderse hacer. Una factura emitida por un Club deportivo, por ejemplo, creo que estaría en esa situación. Las operaciones de algunos Clubs (al menos, los Clubs sin ánimo de lucho) creo que no están sujetas (¿o es que están exentas?)
Responder Con Cita
  #1251  
Antiguo 09-08-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: 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
Cita:
Empezado por Nessie Ver Mensaje
En segundo lugar, una duda sobre el campo DESCUENTO del XML de TicketBai Gipuzkoa: He visto que el descuento solo se puede aplicar a una línea detalle en concreto. En mi caso, me interesaría aplicar un descuento a la factura completa, no a una línea detalle concreta. No he visto que el XML tenga ese campo. ¿Alguien se encuentra en esta misma tesitura? (Voy a escribir a TicketBai Gipuzkoa para comentarlo, pero me gustaría saber si alguien tiene el mismo problema).

Buenos días.
Puestos a escoger una opción de las 2 a implementar, creo que la de las líneas es más lógica (además de la más habitual).
Sólo se me ocurre en tu caso, que apliques el descuento a una línea calculando cual sería (si es posible), o que lo prorratees en todas las líneas de la factura (teniendo en cuenta posibles errores de redondeo).
__________________
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
  #1252  
Antiguo 09-08-2021
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 88
Poder: 3
HerensugeBeltz Va por buen camino
Cita:
Empezado por unomasmas Ver Mensaje
Por lo que entendí el otro día, la anulación es algo excepcional: Creo que puso un caso en que no se llega a completar la compra; por ejemplo se emite ticket por una compra que el cliente rechaza en el mismo momento en que se estaba produciendo. Se anula ese ticket (esa factura), con lo que supuestamente (en teoría) podría volverse a utilizar el número; sin embargo, como queda documentada, entiendo que no puede eliminarse la factura anulada, con lo que quedaría un hueco en la numeración
En mi opinión una factura anulada permanece en el sistema, aunque sin efecto fiscal alguno. Es decir, yo entiendo que no se puede volver a utilizar ese número de factura e, incluso, en la siguiente factura debería reflejarse el número de factura anulada al identificar la factura anterior.
Responder Con Cita
  #1253  
Antiguo 09-08-2021
adolphsys adolphsys is offline
Miembro
 
Registrado: abr 2006
Posts: 68
Poder: 19
adolphsys Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Buenos días.
Puestos a escoger una opción de las 2 a implementar, creo que la de las líneas es más lógica (además de la más habitual).
Sólo se me ocurre en tu caso, que apliques el descuento a una línea calculando cual sería (si es posible), o que lo prorratees en todas las líneas de la factura (teniendo en cuenta posibles errores de redondeo).
Hola, creo que Nessie se refiere a la aplicación de descuentos o cargos globales (por ejemplo portes) en la factura.
Echad un vistazo a la FAQ de Gipuzkoa 12.13: "...cada uno de los descuentos globales también deberán figurar en la factura, consignándose cada uno de ellos como una nueva línea de detalle describiendo el concepto del descuento, en su caso, y el importe, que según se configure el mismo, pudiera tener signo negativo."
Responder Con Cita
  #1254  
Antiguo 09-08-2021
JoseLeeTo JoseLeeTo is offline
Miembro
 
Registrado: jun 2021
Posts: 65
Poder: 3
JoseLeeTo Va por buen camino
Hola a tod@s;

¿Sabe alguien cuándo se publicarán las especificaciones para el nuevo servicio Zuzendu de Guipuzcoa?

Muchas gracias.
Saludos.
Responder Con Cita
  #1255  
Antiguo 10-08-2021
aflores1 aflores1 is offline
Miembro
 
Registrado: jul 2021
Posts: 12
Poder: 0
aflores1 Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
Nos hemos quedado aquí... firmador.php
Lo primero, darte las gracias por compartir el código. Estoy utilizando tu firmador para realizar la firma pero me da error 008 todo el rato. He probado enviando otro documento firmado con otra aplicación que tengo en c# y me realiza el envío sin errores por lo que algo en el proceso de firmado debe de estar incorrecto pero no consigo ver el que. Estas utilizando esta misma versión que subiste y te funciona correctamente?
Responder Con Cita
  #1256  
Antiguo 10-08-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 60
Poder: 5
bilbur Va por buen camino
Cita:
Empezado por aflores1 Ver Mensaje
Lo primero, darte las gracias por compartir el código. Estoy utilizando tu firmador para realizar la firma pero me da error 008 todo el rato. He probado enviando otro documento firmado con otra aplicación que tengo en c# y me realiza el envío sin errores por lo que algo en el proceso de firmado debe de estar incorrecto pero no consigo ver el que. Estas utilizando esta misma versión que subiste y te funciona correctamente?

La versión que utilizo es la misma y funciona correctamente.
Parece ser un error de verificación de firma.


Si quieres, envía un xml sin datos (con las cabeceras TBAI) y lo firmo y compruebo.


Un saludo
Responder Con Cita
  #1257  
Antiguo 10-08-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por aflores1 Ver Mensaje
Lo primero, darte las gracias por compartir el código. Estoy utilizando tu firmador para realizar la firma pero me da error 008 todo el rato. He probado enviando otro documento firmado con otra aplicación que tengo en c# y me realiza el envío sin errores por lo que algo en el proceso de firmado debe de estar incorrecto pero no consigo ver el que. Estas utilizando esta misma versión que subiste y te funciona correctamente?
Hola aflores1,

Chequea, primero, el XML firmado con https://tools.chilkat.io/xmlDsigVerify.cshtml
Así te aseguras si está correctamente firmado.

Saludos
Responder Con Cita
  #1258  
Antiguo 11-08-2021
aflores1 aflores1 is offline
Miembro
 
Registrado: jul 2021
Posts: 12
Poder: 0
aflores1 Va por buen camino
Gracias ya conseguí solucionarlo,

Me faltaban el los xsi al principio del documento.

Código:
<?xml version='1.0' encoding='UTF-8'?><T:TicketBai xmlns:T='urn:ticketbai:emision' 
    xmlns:xsi='....w3.org/2001/XMLSchema-instance' 
    xsi:schemaLocation='......w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd'>
Responder Con Cita
  #1259  
Antiguo 11-08-2021
aflores1 aflores1 is offline
Miembro
 
Registrado: jul 2021
Posts: 12
Poder: 0
aflores1 Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
La versión que utilizo es la misma y funciona correctamente.
Parece ser un error de verificación de firma.


Si quieres, envía un xml sin datos (con las cabeceras TBAI) y lo firmo y compruebo.


Un saludo
He conseguido firmar el de alta pero me es imposible realizar una firma correcta para el de anulación,

te dejo mi plantilla de xml por si puedes revisármela.(no me deja incluir enlaces el foro)

Código:
<xml version="1.0" encoding="UTF-8">
    <T:AnulaTicketBai xmlns:T="urn:ticketbai:anulacion" xmlns:xsi="......w3.org/2001/XMLSchema-instance" xsi:schemaLocation=".......w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
        <Cabecera>
            <IDVersionTBAI>1.2</IDVersionTBAI>
        </Cabecera>
        <IDFactura>
            <Emisor>
                <NIF>XXXXXX</NIF>
                <ApellidosNombreRazonSocial>XXXXXXXX</ApellidosNombreRazonSocial>
            </Emisor>
            <CabeceraFactura>
                <SerieFactura>Factura Compra</SerieFactura>
                <NumFactura>2021205346</NumFactura>
                <FechaExpedicionFactura>29-07-2021</FechaExpedicionFactura>
            </CabeceraFactura>
        </IDFactura>
        <HuellaTBAI>
            <Software>
                <LicenciaTBAI>TBAIGIPRE000000000000</LicenciaTBAI>
                <EntidadDesarrolladora>
                    <NIF>XXXXXXXXX</NIF>
                </EntidadDesarrolladora>
                <Nombre>XXXXXXXX</Nombre>
                <Version>1.2</Version>
            </Software>
        </HuellaTBAI>
    </T:AnulaTicketBai>
Un saludo y gracias!!
Responder Con Cita
  #1260  
Antiguo 11-08-2021
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Buenos dias, foreros.


Despues de casi 7 años sin apenas tocar Delphi, vuelvo necesitar de vuestra ayuda con el dichoso Ticket BAI.
Muchas gracias a elcharie por su código sobre la firma digital https://www.clubdelphi.com/foros/sho...ent#post534661

me ha sido de gran ayuda pues tambien uso los componentes SecureBlackBox para firmar con FacturaE.



Mi duda es sobre el encadenamiento de las facturas, en un ejemplo he visto esto:
Código:
<EncadenamientoFacturaAnterior>                                                                                                                                            
    <SerieFacturaAnterior>B2022</SerieFacturaAnterior>                                                                                                                  
    <NumFacturaAnterior>0100</NumFacturaAnterior>                                                                                                                            
    <FechaExpedicionFacturaAnterior>30-01-2022</FechaExpedicionFacturaAnterior>                                                                                               
 <SignatureValueFirmaFacturaAnterior>DSI1XA1ErCoqaEln++216eTQpN0qF7HQb/I3QhF54V11LEGY3ucMVH33GceRE9LtYJI7AoI0YS3q0qPOn+eTlH6ZHVXXkcVZyi2g</SignatureValueFirmaFacturaAnterior>
</EncadenamientoFacturaAnterior>

Mi duda es qué valor debo grabar en el tag SignatureValueFirmaFacturaAnterior.
Suponiendo una firma digital del xml que acabo de grabar,



Código:
<ds:Signature Id="Signature-221b390d-079e-45d2-a152-70726a44665f-Signature" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
    <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
    <ds:Reference Id="Reference-1e93a4c4-c54d-4704-aef6-815f9afa0490" Type="http://www.w3.org/2000/09/xmldsig#Object" URI="">
    <ds:Transforms>
    <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
    <ds:XPath xmlns:ds="http://www.w3.org/2000/09/xmldsig#">not(ancestor-or-self::ds:Signature)</ds:XPath>
    </ds:Transform>
    </ds:Transforms>
    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
    <ds:DigestValue>Lj/xC1Vm48GUnqm6mQVSdMWDSS7h6EpTnG/m3TWADSI+vKoehKH2u/KSKOZc6fqZ+mT4pqyxCVAwwIlISPhAGw==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#Signature-221b390d-079e-45d2-a152-70726a44665f-SignedProperties">
    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
    <ds:DigestValue>6ZLdg8WSZEcsodu/pVr6E76DL0+REsuOgrF+N1TR6xBG0QHOXFf6876kZOUBZFhZaQ+r7ncHaxRXBhZDo3aidQ==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference URI="#Signature-221b390d-079e-45d2-a152-70726a44665f-KeyInfo">
    <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
    <ds:DigestValue>gkMC+2K2Q9SEhd7FbRe1oq3Rsb+FCe+UgKsvU2NJxuW3F5BVMgbKfM2B4jv9EULQfIZmOYU9sff5OxSyecL9/Q==</ds:DigestValue>
    </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue Id="Signature-221b390d-079e-45d2-a152-70726a44665f-SignatureValue">JmGem1gIrDMgDBSwggrUx4wUa6OeIeYo+B11HZYYxfPlSkT1g8KOMipXQCBl4M79GF+ZfkZoaXrVFiVdXlqVg2lVtWIt8swT5/JwkemwKtNuSA0Z7J1xLIj8D9GjU1Lhc8FBly0ecYRoahsPyCKwH/b4sU29WCKgqsfaAn4HmM8KuSJ3786KKUZ5TfPyLdqyJebq4mszozxeIVcColch2tRoMxC5bWg7FctJ6CH54itfiUq3Uv2azi/AIzyMwCOCaDUftHlju9xYtIqMwb9UipOPGeovVUbe5InPItjOq+fvCXNBfMfgRcZkF6G5c3SHpBlW8fESN6zd8vVm6o1R/w==</ds:SignatureValue>
    <ds:KeyInfo Id="Signature-221b390d-079e-45d2-a152-70726a44665f-KeyInfo">

¿cual seria el tag con el valor para el siguiente XML a firmar?
¿SignatureValue?
¿Alguno de los <DigestValue>?


Estoy un poco perdido...
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3547 Hace 1 Semana 18:06: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 17:23:05.


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