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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...