Ver Mensaje Individual
  #590  
Antiguo 12-05-2021
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 60
Reputación: 5
bilbur Va por buen camino
Cita:
Empezado por sline Ver Mensaje
Gracias bilbur!

todo esto me ha permitido continuar con el proceso, pero me encuentro un contratiempo con el qr.
Para generar el código QR es necesario los 13 primeros caracteres de la firma, en ocasiones la firma contiene caracteres como + o / y al entrar la url para batuz muestra que es incorrecta.
No encuentro nada (o al menos no lo he visto) que limite qué caracteres usar o no, o si hubiera que reemplazarlos.

te explico el código de la dirección qr para GIP


$caracterSeparador = '-' // el guión medio o tecla del menos
$cif_340 = cif de la empresa 9 dígitos
$dd$mm$aaa = dia mes año sin separador // 12052021
$SignatureValueFirmaFacturaActua = substr($SignatureValueFirmaFacturaActual,0,13); // 13 primeras posiciones
$TBAIID = utf8_encode($TBAIID); // lo codificas a utf8
$cod_crc8 = crc8($TBAIID); // calculas el crc8
$TBAIID = $TBAIID.$cod_crc8; // se lo añades a la cadena TBAIID
$msg_TBAI = $url_TBAI_QR.'?id='.$TBAIID.'&s='.serie.'&nf='.numero.'&i='.$importe; // creas el enlace TBAI
$msg_TBAI = utf8_encode($msg_TBAI); // otra vez a utf8
$cod_crc8 = crc8($msg_TBAI); // calculas el nuevo crc8
$msg_TBAI = $msg_TBAI.'&cr='.$cod_crc8; // y se lo añades al enalce

Código PHP:
   $msg_TBAI '';
    
$xml_actual_enviado simplexml_load_file($guardado_enviado_tbai);    
    
$signatureNodeActual $xml_actual_enviado->children('ds'true)->Signature;    
    
$SignatureValueFirmaFacturaActual $signatureNodeActual->SignatureValue;
    
$SignatureValueFirmaFacturaActual substr($SignatureValueFirmaFacturaActual,0,13);    
    
$factura_tbai_serie  $xml_actual_enviado->Factura->CabeceraFactura->SerieFactura;    
    
$factura_tbai_numero $xml_actual_enviado->Factura->CabeceraFactura->NumFactura;
    
$factura_tbai_fecha  $xml_actual_enviado->Factura->CabeceraFactura->FechaExpedicionFactura;    
    
$factura_tbai_fecha_dd substr($factura_tbai_fecha,0,2);
    
$factura_tbai_fecha_mm substr($factura_tbai_fecha,3,2);    
    
$factura_tbai_fecha_aa substr($factura_tbai_fecha,-2);        
    
$factura_tbai_importe  $xml_actual_enviado->Factura->DatosFactura->ImporteTotalFactura;        
    
$TBAIID  'TBAI'.$caracterSeparador.$cif_340.$caracterSeparador.$dd;
    
$TBAIID .= $mm.$aaaa.$caracterSeparador;
    
$TBAIID .= $SignatureValueFirmaFacturaActual.$caracterSeparador;
    
$TBAIID utf8_encode($TBAIID);    
    
$cod_crc8 crc8($TBAIID);
    
$TBAIID  $TBAIID.$cod_crc8;
    unset(
$xml_actual_enviado);
    
$msg_TBAI =  $url_TBAI_QR.'?id='.$TBAIID.'&s='.$factura_tbai_serie.'&nf='.$factura_tbai_numero.'&i='.$factura_tbai_importe;
    
$msg_TBAI utf8_encode($msg_TBAI);    
    
$cod_crc8 crc8($msg_TBAI);
    
$msg_TBAI $msg_TBAI.'&cr='.$cod_crc8
Al final queda algo así:

'https://tbai.prep.gipuzkoa.eus/qr/?id=TBAI-B09203993-210421-YQw6BwvgmOe9h-235&s=FR&nf=000115&i=-5.44&cr=012'

Este enlace funciona
Responder Con Cita