Nfse Vitoria assinatura do arquivo

Estou desenvolvendo a nota fiscal eletronica de vitoria-es, estou utilizando o php com o pacote de nfephp-org/sped-nfse-nacional, fiz uns ajustes para atender a prefeitura, ao enviar o rps retorna essa mensagem “Não foi possível validar a assinatura do arquivo.”

Agradeco desde já.

Esse pacote não serve para nada.
Eles só começaram a fazer um esqueleto e até onde vi não estava funcional.

Poste por favor o seu XML.
Acredito que o problema esteja na estrutura.

Esse tópico explica sobre Vitória, embora seja em C#:

Se precisar tenho um código em PHP para assinatura do XML.

Boa tarde, obrigado pelo retorno, realmente havia um projeto inacabado, porem devido a complexidade de um unico framework para atender todas as prefeituras eles fragmentaram em pequenos projetos, esse da nota nacional esta bem completo ele gera todas os tipos de requisicoes, atribui a assinatura no xml, fiz o que vc sugeriu em outros posts de começar pela consulta de rps, e esta funcionando, o webservice responde e de envio de rps tambem responde, fiz varios testes com campos errados, faltando assinatura digital e todas o webservice retorna o erro porem ao enviar xml com todas as informações corretas recebo essa da assinatura, olha o que retorna:

 <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“XML Schema”>soap:Body<?xml version=“1.0” encoding=“utf-8”?><EnviarLoteRpsResposta xmlns:xs=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“http://www.abrasf.org.br/nfse.xsd”>  <Protocolo>7e3b9a0d-e1d2-43e1-8</Protocolo>  <ListaMensagemRetorno>    <MensagemRetorno>      <Codigo>E179</Codigo>      <Mensagem>Erro na autenticação.</Mensagem>      <Correcao>Não foi possível validar a assinatura do arquivo.</Correcao>    </MensagemRetorno>  </ListaMensagemRetorno></EnviarLoteRpsResposta></soap:Body></soap:Envelope>

exemplo do arquivo
teste.xml (6,0,KB)

O Erro E179 quer dizer que o certificado que você está usando para assinar a Nota, não está liberado na Prefeitura de Vitória para emissão.
Consultando o CNPJ do Certificado ele consta em Vila Velha.

Tem certeza que é em Vitória que você precisa emitir e não em Vila Velha?
Os dois usam a mesma solução, muda apenas o endereço do webservice.

O Script esta preparado para as duas prefeituras, baseado na codigo do municipio o sistema ira direcionar para a configuração correspondente. Esse CNPJ em questao é de Vila Velha e verifiquei todos os parâmetros e estao corretos, estou usando o webservice de homologação.
Será que a assinatura está sendo montada de maneira correta? Existe alguma forma de verificar a veracidade da assinatura?
Obs. no site da prefeitura tem uma area de verificação do xml, quado eu testo o xml do rps, mesmo com assinatura, é validado, quando testo o xml do soap (completo) ele da a mensagem: “A mensagem XML do cabeçalho do arquivo enviado está fora do padrão especificado. Consulte o Manual da NFS-e para saber quais são as versões de XML Schema suportadas pelo sistema”

Está tudo correto.
Com respeito ao CNPJ, é como falei, mesmo na homologação precisa de constar como liberado pela Prefeitura.

Na questão do Cabeçalho, Vitória não usa.
Se passar vai dar erro.

Use o método GerarNfse

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GerarNfse xmlns="http://www.abrasf.org.br/nfse.xsd">
      <mensagemXML>{0}</mensagemXML>
    </GerarNfse>
  </soap:Body>
</soap:Envelope>

Quando vc diz liberado, o que se refere? o cliente consegue emitir nota via portal (nota manualmente) , para que ele posso enviar via webservice precisa de alguma autorizacao especial da prefeitura?

vc pode me mandar o script em php de assinatura do xml?

Acredito que são coisas separadas.
Geralmente precisa de autorização adicional.

Segue um modelo que como eu faço para enviar para a solução da BETHA de Rio Bonito/RJ.
Você vai precisar adaptar para Vitória.

betha_v001.php (29,7,KB)

Luiz quero agradecer muito a sua ajuda, essa semana retomei o processo da nota fiscal enviada via soap e continuava o erro de autenticação, mas ao fazer uma comparação linha a linha do methodo assinaXML() do arquivo que vc compartilhou eu vi que na função “C14N(false, false, NULL, NULL);” estava dessa forma e no meu script estava C14N(true, false, null null); e ao deixar igual ao seu a prefeitura passou a aceitar o envio do arquivo. Retornando:

<?xml version="1.0" encoding="utf-8"?>
<EnviarLoteRpsResposta xmlns:xs="http:\\www.w3.org\2001\XMLSchema-instance\" xmlns=\"http:\\www.abrasf.org.br\nfse.xsd\">
<Protocolo>b3881ebc-f54a-40eb</Protocolo>
<ListaMensagemRetorno> 
<MensagemRetorno> 
<Codigo>A31</Codigo> 
<Mensagem>Arquivo processado com sucesso</Mensagem> 
<Correcao>Todos os RPS do arquivo foram convertidos em NFS-e com sucesso. </Correcao> </MensagemRetorno> 
<MensagemRetorno> 
<Codigo>A32</Codigo> 
<Mensagem>Arquivo processado com sucesso</Mensagem> 
<Correcao>O arquivo passou com sucesso pelas validações física e lógica.</Correcao> </MensagemRetorno> 
</ListaMensagemRetorno>
</EnviarLoteRpsResposta>
</RecepcionarLoteRpsResult>
</RecepcionarLoteRpsResponse>
</soap:Body>
</soap:Envelope>

Agora é só consultar usando o protocolo.
Assim você recebe anota gerada!