Ver Mensaje Individual
  #1262  
Antiguo 11-08-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 60
Reputación: 5
bilbur Va por buen camino
Cita:
Empezado por aflores1 Ver Mensaje
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!!

FIRMA VÁLIDA
Te cuento:


He creado un firmador_anulacion.php que difiere de firmador.php en 5 líneas
Cambio "emision" por "anulacion"

Código PHP:
    $xmlns 'xmlns:ds="http://www.w3.org/2000/09/xmldsig#" ' .
             
'xmlns:T="urn:ticketbai:anulacion" ' .
             
'xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"';
            
    
$xmnls_signeg        'xmlns:T="urn:ticketbai:anulacion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
    
$xmlns_keyinfo       'xmlns:T="urn:ticketbai:anulacion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
    
$xmnls_signedprops 'xmlns:T="urn:ticketbai:anulacion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
y al final esta otra:
cambio TicketBai por AnulaTicketBai
Código PHP:
    </ds:Signature>';

    $xml = str_replace('
</T:AnulaTicketBai>', $sig . '</T:AnulaTicketBai>', $xml);
    return $xml; 
Por otro lado me daba error tu primera línea:
Código:
$xml  = "<?xml version='1.0' encoding='UTF-8'?>";
No tengo intención de utilizar la anulación, usaré rectificativas.
Si me obliga, combinaré del alguna forma firmador.php y firmador_anulacion.php para dejarlo sólo en uno.
Puebalo y me cuentas
Responder Con Cita