Sim, está com URI = 0
Eu percebi que esse parametro é utilizado no método: TNFSeWebService.AlterarURIAssinatura
procedure TNFSeWebService.AlterarURIAssinatura;
var
i: Integer;
begin
// Se URI for True significa que devemos incluir o ID do Lote no
// atributo URI da assinatura.
if FPConfiguracoesNFSe.Geral.ConfigAssinar.URI then
begin
i := Pos('URI=""', FPDadosMsg);
// Inclui o conteudo do atribuito ID caso ele não tenha sido incluido no
// atributo URI ao realizar a assinatura.
if (i > 0) and (FIDLote <> '') then
FPDadosMsg := Copy(FPDadosMsg, 1, i+4) + '#' + FIDLote +
Copy(FPDadosMsg, i+5, length(FPDadosMsg));
end;
end;
Mas no método de assinatura: NotaFiscal.Assinar(Assina: Boolean) tem um processo que modifica sem verificar esse parametro.
// Inclui o conteudo do atribuito ID caso ele não tenha sido incluido no
// atributo URI ao realizar a assinatura.
if not (Configuracoes.Geral.Provedor in [proAbaco, proSMARAPD, proNotaBlu, proSP]) then
if (i > 0) and (NFSe.InfID.ID <> '') then
FXMLAssinado := Copy(FXMLAssinado, 1, i+4) + '#' + NFSe.InfID.ID +
Copy(FXMLAssinado, i+5, length(FXMLAssinado));
Eu adicionei o proGoiania nessa lista e agora gerou igual esse exemplo da Prefeitura, mas ainda estou tendo o mesmo erro de assinatura.
Observei aqui que ele está assinando com o XMLNS na primeira tag RPS. E depois ele retira esse xmlns na tag rps e coloca na tag GerarNfseEnvio.
Não sei se pode ser isso que esteja dando diferença na assinatura.
Vou fazer mais uns testes aqui.