Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2022
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Muchas gracias, también en nombre de quienes han descargado tus archivos, por tu aportación.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 11-09-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #3  
Antiguo 20-09-2022
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Adjunto la función que utilizo para generar la url del QR

Código Delphi [-]
function TdmSIGCZFE.generarQR(
                              _QRVersion : AnsiString;                      // Version del Manual Técnico = 150
                              _QRId : AnsiString;                             // código CDC string de 44 caracteres 
                              _QRdFeEmiDE : AnsiString;                 // Fecha emision del D.E.
                              _QRdRucRec : AnsiString;                   // RUC del contribuyente
                              _QRdTotGralOpe : AnsiString;             // importe total de la operación
                              _QRdTotIVA : AnsiString;                   // importe del IVA de la operación
                              _QRcItems : AnsiString;                    // cantidad de items facturado
                              _QRDigestValue : AnsiString;            // Digest de la firma
                              _QRIdCSC : AnsiString;                    // id del Codigo CSC facilitado por la SET para la generación de la url (puede haber 2)
                              _QRCSC : AnsiString): AnsiString;    // Código CSC facilitado por la SET para la generación de la url  (puede haber 2)
var
      _cHashQR : AnsiString;
      _QR,_QRCalcHash : AnsiString;
begin

      _QR := 'nVersion='+_QRVersion +'&' +
              'Id='+_QRId+'&' +
              'dFeEmiDE='+ lowercase((String2Hex(_QRdFeEmiDE))) +'&' +   //convertimos la fecha en su valor hexadecimal
              ''+_QRdRucRec +'&' +
              'dTotGralOpe='+_QRdTotGralOpe + '&' +
              'dTotIVA='+ _QRdTotIVA + '&' +
              'cItems='+ _QRcItems + '&' +
              'DigestValue=' + lowercase((String2Hex(_QRDigestValue))) + '&' +  //convertimos el digest de la firma en su valor hexadecimal
              'IdCSC=' + _QRIdCSC;


      _QRCalcHash := _QR + _QRCSC;                              // al valor calculado en paso anterior se adiciona el codigo CSC
      _cHashQR    :=  GetStrHashSHA256(_QRCalcHash);  // el resultado del paso anterior lo Generaramos el Hash

      _QR := _QR + '&cHashQR=' + _cHashQR;

      if idAmbienteActual = 1 then // ambiente de prueba
            _QR := urlQRPrueba + _QR
      else  if idAmbienteActual = 2 then  // ambiente de producción
            _QR := urlQRProduccion + _QR;

      result := StringReplace(_QR,'&','&',[rfReplaceAll, rfIgnoreCase]);  // escapamos el & por '&'
end;

abajo las otras funciones utilizadas


Código Delphi [-]
function String2Hex(const Buffer: AnsiString): string;
begin
  SetLength(Result, Length(Buffer) * 2);
  BinToHex(PAnsiChar(Buffer), PChar(Result), Length(Buffer));
end;

Código Delphi [-]
function GetStrHashSHA256(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    result := HashSHA.GetHashString(Str,SHA256);
end;
Responder Con Cita
  #4  
Antiguo 20-09-2022
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
el resultado de la función se debe agregar al xml en el tag

Código:
<gCamFuFD>
<dCarQR>h_t_t_p_s://ekuatia.set.gov.py/consultas-test/qr?nVersion=150&amp;Id=010XXXXXX001001000006212022091914019076583&amp;dFeEmiDE=323032322d30392d31395431393a33313a3331&amp;dRucRec=XXXXXX&amp;dTotGralOpe=1036424.00&amp;dTotIVA=94220.35&amp;cItems=3&amp;DigestValue=70757447585833595a5a66555263354d2f724658716135504c776c64716f7a46635449384b44323843666f3d&amp;IdCSC=0001&amp;cHashQR=d4691e96002fdc2ed6518055f2ba983a59cd940a24f7ed43a3f82454d5fbc719
</dCarQR>
</gCamFuFD>

Última edición por dec fecha: 20-09-2022 a las 10:00:49. Razón: Poner etiqueta CODE
Responder Con Cita
  #5  
Antiguo 21-10-2022
JCz JCz is offline
Miembro
 
Registrado: oct 2021
Posts: 29
Poder: 0
JCz Va por buen camino
Firma Xml

Para la firma del XML utilizo la librería de Chilkat; paso en adjunto como lo hago.

Saludos!!
Archivos Adjuntos
Tipo de Archivo: zip firmarXML.zip (1,9 KB, 62 visitas)
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
xml+xsl a pdf(Factura Electronica) jgutti Varios 4 21-02-2012 16:08:23
Factura electronica richy08 Varios 4 17-12-2010 00:40:34
Factura Electrónica aig Varios 13 10-12-2010 17:12:44
factura electronica cmm07 Varios 4 02-04-2009 17:46:03
factura electronica spia Varios 2 22-02-2009 21:30:06


La franja horaria es GMT +2. Ahora son las 09:32:34.


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