OpenNFSe

OpenNFSe (http://www.opennfse.com.br/forums/index.php)
-   Ajuda sobre código fonte (http://www.opennfse.com.br/forums/forumdisplay.php?f=5)
-   -   NFSeSigner (http://www.opennfse.com.br/forums/showthread.php?t=6)

LuizVaz 27/10/2009 17:37

NFSeSigner
 
Citação:

Luiz, boa tarde, vc postou no forum que ja havia dito com o resolver o problema da função de assinatura de xml, mas estou tentando utilizar a função que vc postou e ocorre o mesmo erro. Será que da para vc explicar novamente. Obrigado.

*** local do erro
pKeyOut := FXMLDSig.sign(pKey, fwWriteKeyInfo);

Mensagem de Erro: Erro não especificado'.

Função que ocorre o erro
function SignXML(fwWriteKeyInfo: _XMLDSIG_WRITEKEYINFO): Boolean;
Oi Adriano,

acredito que possam ser duas coisas.
Ou seu XML está com problema na TAG signature ou seu certificado não está sendo encontrado!

Poste aqui seu XML (zipado se for muito grande) para analisar!

Att,
Luiz Vaz

LuizVaz 27/10/2009 18:18

1 Anexo(s)
Adriano,

Você tem que manter a mesma estrutura do TAG Signature.
Ele tem que ser sempre:

Código:

                <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="Ass_rps:1ABCDZ">
                    <SignedInfo>
                        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
                        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
                        <Reference URI="#rps:1ABCDZ">
                            <Transforms>
                                <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                            </Transforms>
                            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                            <DigestValue/>
                        </Reference>
                    </SignedInfo>
                    <SignatureValue/>
                    <KeyInfo>
                        <X509Data>
                            <X509Certificate/>
                        </X509Data>
                    </KeyInfo>
                </Signature>

Isso é necessário para o que o TAG seja encontrado e o XML seja assinado.
Pois a linha abaixo procura pelo NAMESPACE xmldsig:

Código:

     
const
      DSIGNS = 'xmlns:ds="http://www.w3.org/2000/09/xmldsig#"'; 
      ...
      FXMLDoc.setProperty('SelectionNamespaces', DSIGNS);
      sSigs := FXMLDoc.selectNodes('.//ds:Signature');

A única coisa que muda é o 1ABCDZ e que tem sempre de ser "Id":
Id="Ass_rps:1ABCDZ"


Ele é o código referente ao "Id" do RPS, NOTA ou LOTE.


Att,
Luiz Vaz

Adriano Luiz Alves 28/10/2009 15:00

2 Anexo(s)
Citação:

Postado Originalmente por LuizVaz (Post 6)
Oi Adriano,

acredito que possam ser duas coisas.
Ou seu XML está com problema na TAG signature ou seu certificado não está sendo encontrado!

Poste aqui seu XML (zipado se for muito grande) para analisar!

Att,
Luiz Vaz

Luiz, agora a situação e outra, estou tentando cancelar uma nota mas sempre recebo a mensagem
E78-Número da NFS-e inexistente na base de dados para o prestador de serviço pesquisado. Informe o número correto da NFS-e.
Anexo os xmls, que estou gerando

LuizVaz 28/10/2009 20:44

Citação:

Postado Originalmente por Adriano Luiz Alves (Post 8)
Luiz, agora a situação e outra, estou tentando cancelar uma nota mas sempre recebo a mensagem
E78-Número da NFS-e inexistente na base de dados para o prestador de serviço pesquisado. Informe o número correto da NFS-e.
Anexo os xmls, que estou gerando

Adriano,

Pelo visto o valor que você está passando é do RPS (000109) e não da nota fiscal.
A nota fiscal recebe outro tipo de numeração.
Ele está presente no arquivo de retorno do RPS.

Utilize esse dado para cancelar a nota.

Att,
Luiz Vaz


Horários baseados na GMT -2. Agora são 14:48.

vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.0