Ir para conteúdo
  • Cadastre-se

Hubel Solis Bonifacio

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Hubel Solis Bonifacio's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

1

Reputação

  1. Delphi 10.1 Berlin 1). O governo do Peru, solicita a codificação ISO-8859-1, Seria possível mudar para ISO-8859-1, revi a unidade ACBrDFeSSL e em todos os lugares que ele usa utf-8. 2). Mude para utf-8 e agora recebo o erro de que o documento foi alterado, usando FormatXMLData y nao usando. "El documento electrónico ingresado ha sido alterado - Detalle: Incorrect reference digest value" 3). Analisei a assinatura que gera TDFeSSL e a tag está ausente <X509SubjectName>SERIALNUMBER=RUC:25988430712 C=PE</X509SubjectName> 4). Essa é a ligação. {$IFDEF USAR_NETFRAMEWORK} function zfirmaxml(xmlsinfirmar,xmlfirmado,pathcertificado,clavecertificado:WideString):Integer; stdcall; external 'firmaxml509.dll'; {$ELSE NO USAR_NETFRAMEWORK } function ACBrfirmaXML(xmlsinfirmar,xmlfirmado,pathcertificado,clavecertificado:WideString; conformato : integer):Integer; var xmltmp : TXMLDocument; XMLAnsi : AnsiString; ssl : TDFeSSL; begin if (not FileExists(xmlsinfirmar) ) or (not FileExists(pathcertificado) ) then begin Result:=0; exit; end; xmltmp:= TXMLDocument.Create(FrmGenCPE); xmltmp.Active:=True; xmltmp.Encoding :='utf-8'; xmltmp.StandAlone:='no'; xmltmp.XML.LoadFromFile(xmlsinfirmar); ssl:=TDFeSSL.create; ssl.SSLCryptLib := cryWinCrypt; //(cryNone, cryOpenSSL, cryCapicom, cryWinCrypt); ssl.SSLXMlsignLib:=xsLibXml2; //(xsNone , xsXmlSec , xsMsXml , xsMsXmlCapicom, xsLibXml2); ssl.ArquivoPFX:=pathcertificado; ssl.Senha:=clavecertificado; ssl.CarregarCertificado; XMLAnsi:=ACBrAnsiToUTF8(xmltmp.XML.Text); //CenteudoXML, docElement, infElement, SignatureNode, SelectionNamespaces, IdSignature, IdAttr if (conformato=1) then xmltmp.XML.Text:=FormatXMLData(ssl.Assinar( XMLAnsi ,'ExtensionContent','','','ext','','')) else xmltmp.XML.Text:=ssl.Assinar( XMLAnsi ,'ExtensionContent','','','ext','',''); xmltmp.XML.SaveToFile(xmlfirmado); xmltmp.Active:=False; ssl.Free; xmltmp.Free; Result:=1; end; {$ENDIF USAR_NETFRAMEWORK} 5) Resultados em anexo. DLL_NetFM_ISO8859_formatXML_20489430712-01-FE82-00000201_OK.xml ACBr_ISO8859_formatXML_20489430712-01-FE82-00000201_error_alterado.xml ACBr_utf8_formatXML_20489430712-01-FE82-00000201_error_alterado.xml ACBr_utf8_naoFormat_20489430712-01-FE82-00000201_error_alterado.xml Obrigado por suas respostas
  2. procedure TForm3.BitBtn2Click(Sender: TObject); begin ShowMessage(ACBrUTF8ToAnsi('ABRAZADERA IND. 4´´')); end; //ABRAZADERA IND. 4?? Estou usando TDFeSSL para assinar, alguns caracteres como o til (alt + 239) aparecem como (?). Haverá alguma maneira de preservar o texto original no XML Uses ACBrDFeSSL,ACBrUtil; function ACBrfirmaXML(xmlsinfirmar,xmlfirmado,pathcertificado,clavecertificado:WideString; conformato : integer):Integer; var xmltmp : TXMLDocument; XMLAnsi : AnsiString; ssl : TDFeSSL; begin if (not FileExists(xmlsinfirmar) ) or (not FileExists(pathcertificado) ) then begin Result:=0; exit; end; xmltmp:= TXMLDocument.Create(Form3); xmltmp.Active:=True; xmltmp.Encoding :='ISO-8859-1'; xmltmp.StandAlone:='no'; xmltmp.XML.LoadFromFile(xmlsinfirmar); ssl:=TDFeSSL.create; ssl.SSLCryptLib := cryWinCrypt; //(cryNone, cryOpenSSL, cryCapicom, cryWinCrypt); ssl.SSLXMlsignLib:=xsLibXml2; //(xsNone , xsXmlSec , xsMsXml , xsMsXmlCapicom, xsLibXml2); ssl.ArquivoPFX:=pathcertificado; ssl.Senha:=clavecertificado; ssl.CarregarCertificado; XMLAnsi:=ACBrUTF8ToAnsi(xmltmp.XML.Text); //(XMLUTF8,'docelement','infelement','signode','namespace','idsignature','idatributo'); if conformato=1 then xmltmp.XML.Text:=FormatXMLData(ssl.Assinar( XMLAnsi ,'UBLExtension','','','ext','','')) else xmltmp.XML.Text:=ssl.Assinar( XMLAnsi ,'UBLExtension','','','ext','',''); xmltmp.XML.SaveToFile(xmlfirmado); xmltmp.Active:=False; ssl.Free; xmltmp.Free; Result:=1; end; 20604749779-01-FE10-00000002.xml Firmado_20604749779-01-FE10-00000002.xml
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.