Ir para conteúdo
  • Cadastre-se

Alexandre Trajano

Membros
  • Total de ítens

    26
  • Registro em

  • Última visita

Posts postados por Alexandre Trajano

  1. Ítalo e Luan,

     

    Consegui descobri o motivo! Não estava preenchendo o  ReqResp.URL'https://bhisshomologa.pbh.gov.br/bhiss-ws/nfse' responsável para BH! Eu comentei e assim ficou! Ptuz!!! Falta de atenção a minha! a URL 'http://ws.bhiss.pbh.gov.br/CancelarNfse' estava correta. A questão é se você não informa qual o servidor responsável pelo serviço, não há como executar o serviço solicitado, no caso a URL 'http://ws.bhiss.pbh.gov.br/CancelarNfse'.

     

    Fica meu agradecimento pela atenção de vocês!

    • Curtir 1
  2. -ped-can.xml-ped-can-c.xml

    Alexandre aqui utilizamos a NFSE pra BH e pelo que vi o parâmetro código de cancelamento do seu XML está '0002'. Comparei com um xml daqui e no XML o parâmetro está apenas com valor '2'. Verifique como você está passando esse valor para o componente e tente enviar com apenas um caracter.

    Luan, obrigado pela ajuda, eu fiz esta alteração, mas mesmo assim o provedor me retorna que a URL é um parâmetro inválido.

    Segue o XML de pedido de cancelamento em anexo.

  3. Bom dia Alexandre,

     

    Quando você diz que com os outros municípios esta OK com o cancelamento, você esta se referindo ao mesmo provedor?

     

    Se sim entre em contato com eles, pois o problema pode ser pontual, ou seja somente na cidade de BH.

    Bom dia Ítalo, tudo bem?

    Este problema só ocorre no provedor BHISS. Já entrei em contado com eles e os mesmos me deram uma resposta vazia.

    Segue abaixo o conteúdo do email enviado para eles:

     

    P – Desenvolvemos um sistema de emissão par NFSe. A emissão está ok, mas quando
    vamos cancelar uma nota, o provedor nos retorna a seguinte mensagem:
    Parâmetro incorreto. - URL: - SOAPAction:http://ws.bhiss.pbh.gov.br/CancelarNfse
    Existe uma outra URL para realizar os cancelamentos?
     
    R – Prezado (a),
    Infelizmente não temos como auxiliar nesse tipo de erro, pois refere-se a tecnologia
    utilizada em seu ambiente.
    Verifique a documentação da NFS-e disponível no Portal:
    www.pbh.gov.br/bhissdigital
    Menu à esquerda: <NFS-e> <Documentação>
    Coloco-me à disposição para demais esclarecimentos.
     
     
    Esse tipo de erro nos leva a crê que a URL é inválida, mas o suporte de BH não diz nem que "sim" e nem que "não" sobre esta URL!
     
    Mas uma vez agradeço a sua atenção e ajuda!
    Obrigado!
  4. Prezados, 

     

    Ao cancelar uma NFSe para o provedor BHISS, o mesmo me retorna "  Parâmetro incorreto. - URL: - SOAPAction:http://ws.bhiss.pbh.gov.br/CancelarNfse".

     

    Com outros municípios o cancelamento está OK, somente para BH que ocorre isso. No manual informa que a URL é   http://ws.bhiss.pbh.gov.br/CancelarNfse.

     

    Alguém poderia me ajudar com esta situação.

     

    Segue em anexo o xml do pedido de cancelamento.

     

    -ped-can.xml

    -ped-can-c.xml

  5. Ítalo, boa tarde!

     

    Segui as suas recomendações e baixei os fontes atualizados. Com os fontes atualizados, o arquivo env-lot.xml está com a mesma estrutura do arquivo da prefeitura do Rio de Janeiro enviada como exemplo(segue em anexo), porém o retorno é o mesmo, exibe a mensagem que diz que é uma assinatura inválida! Realmente já não sei o que fazer, estou desesperado pois o arquivo é gerado certinho comparando com o arquivo de exemplo da Prefeitura. O certificado que estou usando é o mesmo que utilizo para acessar a site da nota carioca e acessar o sistema!

     

    Não seria de repente na hora de gera criptografar a assinatura possa está com algum problema? 

     

    Uma outra coisa! Na alteração que você fez na unit ACBrNFSeUtil, função AssinarMSXML, você incluiu o proRJ na lista de provedor, mas ao gerar a assinatura para o lote é verificado se provedor é diferente de ProRecife, e como proRJ é diferente ele cai nesta linha xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']'), só que para o ProRJ não há identificador AssLote_. Da forma que está ele me retorna mldsig.signature = nil e exibe a mensagemÉ preciso carregar o template antes de assinar." 

     

    Então fiz a seguinte alteração:

    if ALote

      then begin
        if (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))
        then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')
        else begin
         xmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');
        end;
      end
      else xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');

     

    Desta forma a  mldsig.signature não retorna nill.

     

    OBS: Estou querendo fazer alguns tutoriais para as pessoas que estão começando a lidar com a geração de NFSe. Se não houver problemas como posso para contribuir com o Projeto ACBR!!

     

    Ítalo, desculpe mais uma vez, mas realmente não estou encontrando solução, estou debugando todo o código para poder encontrar o motivo do provedor invalidar a assinatura! Se poder me ajudar novamente fico eternamente agradecido!!

     

     

    Att.

    Ítalo,

     

    Consegui resolver a questão da assinatura! 

     

    O problema estava no Schema nfse.xsd Versão 1.0. No manual da prefeitura do Rio de Janeiro informa que não é obrigatório assina o RPS ou Lote, porém no Schema diz que sim. O provedor só aceita a assinatura no Lote. Então fiz o seguinte:

     

    <xsd:complexType name="tcRps">

            <xsd:sequence>

                <xsd:element name="InfRps" type="tcInfRps" minOccurs="1" maxOccurs="1"/>

                <xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="0" />

            </xsd:sequence>

        </xsd:complexType>

     

    Na Unit ACBRProvedorRJ uma outra alteração:

     

    function TProvedorRJ.GetConfigCidade(ACodCidade,
      AAmbiente: Integer): TConfigCidade;
    var
     ConfigCidade: TConfigCidade;
    begin
     ConfigCidade.VersaoSoap    := '1.1';
     ConfigCidade.Prefixo2      := '';
     ConfigCidade.Prefixo3      := '';
     ConfigCidade.Prefixo4      := '';
     ConfigCidade.Identificador := 'Id';
     
    // if AAmbiente = 1
    //  then ConfigCidade.NameSpaceEnvelope := 'http://notacarioca.rio.gov.br'
    //  else ConfigCidade.NameSpaceEnvelope := 'http://homologacao.notacarioca.rio.gov.br';
     
     ConfigCidade.NameSpaceEnvelope := 'http://notacarioca.rio.gov.br';
     
     ConfigCidade.AssinaRPS  := False;
     ConfigCidade.AssinaLote := True; // Alterado por Italo em 10/05/2013
     
     Result := ConfigCidade;
    end;
     
    e a ultima alteração foi na unit ACBrNFSeUtil, função AssinarMSXML:
    if ALote
      then begin
        if (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))
        then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')
        else begin
         xmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');
        end;
      end
      else xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');
     
    Feito isso, a emissão e o retorno ocorreu sucesso! Funcionou 100%!!
    A prefeitura do Rio ainda trabalha com a versão 1.0 da NFSe mas este arquivo nfse.xsd deve ser atualizado e lembrando que a assinatura é somente no Lote!
    Fica aqui me agradecimento pela sua ajuda! Valeu pela força!!!
  6. O componente ja imprime sim...

    são dois componentes:

    ACBrNFSe : Componente para tratamento da nota fiscal Eletronica

    ACBrNFSeDANFSeQR1 : Componente para impressão do DANFE.

    Na propriedade DANFEse do componente ACBrNFSe deve constar o componente para impressão, caso pretenda imprimir a nota.

    Espero ter ajudado.

    Att.

    Flavio

    Flávio, 

     

    Haveria como você exemplificar esta parte!!

     

    Obrigado!

     

  7. Alexandre Trajano, vc ta usando Certificado Digital da mesma empresa que está configurada como prestadora do serviço?

    Sim estou! Uma coisa que me chamou a atenção foi que na propriedade do certificado, na aba detalhes, no campo requerente não há a informação do tipo do certificado, se é do tipo A1 ou A3, o contado afirma que do tipo A1. Até então, os lotes são enviados em arquivos txt no site da nota carioca utilizando este certificado. Será que o certificado deve ser habilitado na prefeitura para o envio de lote em XML?

     

    Desde já agradeço a sua ajuda!

  8. Italo,

    RESOLVIDO! :D

    Consegui emitir.

    Baixei os schemas do site da prefeitura do Rio de Janeiro, arquivos nfse_pcrj_v01.xsd, tipos_nfse_v01.xsd e xmldsig-core-schema_v01.xsd, direcionei o diretorio schemas do componente para eles, e tudo OK. Lembrando que é preciso testar no ambiente de producao, pois o ambiente de teste do rio já foi fechado, retornando sempre o erro "mensagem XML de pedido do servico sem conteudo".

    O outro problema é que eu achei que o componente buscava os schemas em seus respectivos diretorios - acho que vi algo parecido implementado aqui no forum - de qualquer maneira fica a sugestao para implementação nas proximas versoes meu amigo, porque facilitaria a implantacao num sistema com varias empresas em municipios diferentes (aqui no rio tem muitos municipios proximos, como mesquita, belford roxo, nilopolis, nova iguacu, duque de caxias, etc) e é comum termos clientes com filiais em municipios diferentes.

    Alexandre, tudo bem!

     

    Peço a sua ajuda, pois estou enfrentando o mesmo problema que você passou, estou emperrado no erro de validação da assinatura, já peguei os fontes atualizados, schemas atualizados e estou utilizando um certificado que é utilizado para acessar o sistema da nota carioca! 

     

    Se você poder me dá uma luz neste questão ficarei muito agradecido .

     

    Desde já agradeço a sua ajuda.

     

     

  9. Ítalo, boa tarde!

     

    Segui as suas recomendações e baixei os fontes atualizados. Com os fontes atualizados, o arquivo env-lot.xml está com a mesma estrutura do arquivo da prefeitura do Rio de Janeiro enviada como exemplo(segue em anexo), porém o retorno é o mesmo, exibe a mensagem que diz que é uma assinatura inválida! Realmente já não sei o que fazer, estou desesperado pois o arquivo é gerado certinho comparando com o arquivo de exemplo da Prefeitura. O certificado que estou usando é o mesmo que utilizo para acessar a site da nota carioca e acessar o sistema!

     

    Não seria de repente na hora de gera criptografar a assinatura possa está com algum problema? 

     

    Uma outra coisa! Na alteração que você fez na unit ACBrNFSeUtil, função AssinarMSXML, você incluiu o proRJ na lista de provedor, mas ao gerar a assinatura para o lote é verificado se provedor é diferente de ProRecife, e como proRJ é diferente ele cai nesta linha xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']'), só que para o ProRJ não há identificador AssLote_. Da forma que está ele me retorna mldsig.signature = nil e exibe a mensagemÉ preciso carregar o template antes de assinar." 

     

    Então fiz a seguinte alteração:

    if ALote

      then begin
        if (URI <> '') and ((AProvedor <> proRecife) and (AProvedor <> proRJ))
        then xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature[@' + Identificador + '=AssLote_' + URI + ']')
        else begin
         xmldsig.signature := xmldoc.selectSingleNode('.//ds1:' + EnviarLoteRps + '/ds:Signature');
        end;
      end
      else xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature');

     

    Desta forma a  mldsig.signature não retorna nill.

     

    OBS: Estou querendo fazer alguns tutoriais para as pessoas que estão começando a lidar com a geração de NFSe. Se não houver problemas como posso para contribuir com o Projeto ACBR!!

     

    Ítalo, desculpe mais uma vez, mas realmente não estou encontrando solução, estou debugando todo o código para poder encontrar o motivo do provedor invalidar a assinatura! Se poder me ajudar novamente fico eternamente agradecido!!

     

     

    Att.

     

     

     

     

     

    1-env-lot.xml

    EnviarLoteRpsEnvio_Prefeitura.xml

  10. Ítalo, boa tarde!

     

    Consegui na prefeitura do Rio de Janeiro os exemplos dos XML´s para NFSe carioca.

     

    No arquivo EnviarLoteRpsEnvio.XML, realmente há várias diferenças na assinatura, hoje o componente gera a assinatura somente para o RPS, no exemplo da prefeitura, o lote também deve ser assinado. 

     

    Segue em anexo, todos os exemplos para a alteração do componente! 

     

    Obrigado!

    exemplos (1).zip

  11. Ítalo, bom dia!!

     

    Baixei o fonte em questão e descomentei e foi tudo OK!

     

    Acho que a única coisa que falta é a o retorno do provedor, a rotina envia o lote e acusa o recebimento, mas logo depois me retorna com erro de Lote inválido(Verifique a assinatura dos RPS).

    Porém o certificado que estamos utilizando é de uma empresa (nosso cliente inclusive ) que está cadastrada na lista de prestadores cujo o mesmo CNPJ consta na lista, e o certificado foi validado no SEFAZ. A empresa utiliza o mesmo certificado para entrar no site para a nota carioca.

    Estamos enviando o lote para o ambiente de homologação. 
    Você já viu este caso com outra pessoa? 
     
    Obrigado pela ajuda novamente!!
  12. Ìtalo, boa tarde!!

     

    Fiz as atualizações, mas tem um coisa que não mencionei antes, quando você me pediu para atualizar os fontes a 1ª vez, quando fui compiliar, algumas variaves não foram reconhecidas! Segue a relação da unit com os as funções estão com variaves que não forma identificadas.

     

    As variaveis destacadas em vermelho ou foram comentadas e outras substituidas. Depois destas alterações a rotina funciona. Não sei se por conta disso está    a rotina me retorna informando que o CNPJ não está autorizado.

     

    De qualquer forma agradeço novamente a sua ajuda!!

     

    Unit: ACBRPROCVEDOR4R

       

          Função: GetAssinarXML

                      acRecSincrono

     

        Função:Gera_TagI

                     acRecSincrono

     

         Função:Gera_TagF

                     acRecSincrono

     

         Função:GetSoapAction

                     acRecSincrono

     

          Função:GetRetornoWS

                     acRecSincrono

     

    Unit: ACBRNFSEWEBSERVICE

     

            function GetLastErrorText:

                           pro4R

          

            procedure TWebServicesBase.LoadMsgEntrada

                              pro4R

                              proGovDigital

     

          procedure TWebServicesBase.DoNFSeEnviarLoteRPS;

                               pro4R

     

           procedure TWebServicesBase.DoNFSeGerarNFSe;

                              pro4R

     

           procedure TWebServicesBase.DoNFSeGerarLote;

                              pro4R

     

         procedure TWebServicesBase.DoNFSeEnviarSincrono;

                             pro4R

     

        function TNFSeEnviarSincrono.Executar:

                      acRecSincrono Substituido por acRecepcionar

     

     

        Unit: ACBRNFSEUTIL

     

              function AssinarMSXML

                            pro4R

     

       Unit:ACBRNFSECONFIGURAÇÕES

     

             Procedure TWebServicesConf.SetConfigMunicipio

                                 pro4R

                                 proGovDigital

  13. Ítalo, boa noite!

     

    Fiz  as atualizações e não deu mais a mensagem de erro informando que o XML estava sem conteúdo! Muito obrigado!

     

    Nos testes(em ambiente de homologação), estou utilizando um certificado de uma empresa que está cadastrada na prefeitura como prestador de serviço, o CNPJ dela que aparece no site é o mesmo que está cadastrado no sistema e no certificado. Agora fico na dúvida se poder ser um problema do provedor, ou do certificado!!

    Tô mandando um print do retorno e da mensagem!

     

    Mais uma vez obrigado!

     

    post-8449-0-78691900-1368138453.jpg

    post-8449-0-72542400-1368138454.jpg

  14. Boa noite Italo,

     

    Fiz o que você recomendou de atualizar os fontes, e funcionou perfeitamente. Agora está gerando o Lote com seus respectivos RPS.

     

    Agora ao gerar e enviar lote, creio que eu esteja esquecendo de de alguma coisa, só que não consigo identificar. Ao gerar e enviar lote, a rotina gera perfeitamente o lote com seus RPS, mas no final me exibe uma mensagem que o XML de Pedido do servico sem conteudo. O que pode ser?  No trecho em vermelho realmente não está sendo preenchido.

     

    Muito obrigado pela sua ajuda!

     

     

     

     

    segue abaixo a procedure de configuração

     

     

    _CtrlNFSE20.Configuracoes.Certificados.NumeroSerie := edtNumSerie.Text;
     _CtrlNFSE20.Configuracoes.Arquivos.AdicionarLiteral:=True;
     _CtrlNFSE20.Configuracoes.Arquivos.EmissaoPathNFSe:=True;
     _CtrlNFSE20.Configuracoes.Arquivos.PastaMensal:=True;
     _CtrlNFSE20.Configuracoes.Arquivos.PathCan:=edtPathLogs.Text;
     _CtrlNFSE20.Configuracoes.Arquivos.PathNFSe:=edtPathLogs.Text;
     _CtrlNFSE20.Configuracoes.Arquivos.PathGer:= edtPathLogs.Text;
     _CtrlNFSE20.Configuracoes.Arquivos.PathRPS:= edtPathLogs.Text;
     _CtrlNFSE20.Configuracoes.Arquivos.Salvar:=True;
     
     PathMensal:=_CtrlNFSE20.Configuracoes.Arquivos.GetPathNFSe(0);
     
     _CtrlNFSE20.Configuracoes.Geral.PathSchemas := edtSchemas.Text;
     _CtrlNFSE20.Configuracoes.Geral.Salvar      := ckSalvar.Checked;
     _CtrlNFSE20.Configuracoes.Geral.PathSalvar  := edtPathLogs.Text;
     
     _CtrlNFSE20.Configuracoes.WebServices.CodigoMunicipio := StrToIntDef(edtCodCidade.Text, 0);
     _CtrlNFSE20.Configuracoes.WebServices.Ambiente        := StrToTpAmb(Ok, IntToStr(rgTipoAmb.ItemIndex+1));
     _CtrlNFSE20.Configuracoes.WebServices.Visualizar      := ckVisualizar.Checked;
     _CtrlNFSE20.Configuracoes.WebServices.SenhaWeb        := edtSenhaWeb.Text; 
     
     
     //_CtrlNFSE20.Configuracoes.WebServices.ServicoEnviar; 
     
     
     _CtrlNFSE20.Configuracoes.WebServices.ProxyHost := edtProxyHost.Text;
     _CtrlNFSE20.Configuracoes.WebServices.ProxyPort := edtProxyPorta.Text;
     _CtrlNFSE20.Configuracoes.WebServices.ProxyUser := edtProxyUser.Text;
     _CtrlNFSE20.Configuracoes.WebServices.ProxyPass := edtProxySenha.Text;
     
     
     
     _CtrlNFSE20.Configuracoes.WebServices.SetConfigMunicipio(_CtrlNFSE20.Configuracoes.Geral.PathSchemas);
     
     if _CtrlNFSE20.DANFSe <> nil then
      begin
       _CtrlNFSE20.DANFSe.Logo       := edtLogoMarca.Text;
       _CtrlNFSE20.DANFSe.PrestLogo  := edtPrestLogo.Text;
       _CtrlNFSE20.DANFSe.Prefeitura := edtPrefeitura.Text;
      end;
     
     lblSchemas.Caption := _CtrlNFSE20.Configuracoes.WebServices.xProvedor;

     

     

     

    post-8449-0-43852800-1367876598.jpg

  15. Ítalo,

     

    Muito obrigado pela sua ajuda.

     

    Mas os fontes que instalei são de 16/04/2013, acho que são os mais recentes.

     

    Não sei se isso faz alguma diferença mas o certificado digital na qual faço o uso do nº de série, é de uma empresa que não está incluída na lista de prestadores(disponibilizado no site da prefeitura), neste caso, independente de ser produção ou homologação, não poderei enviar e validar qualquer lote! Correto?

     Pude observar quando estava debugando o código e que ao entrar na função assinar ou na função SetConfigMunicipio;  tanto ConfigCidade1.AssinaRPS e ConfigCidade1.AssinaLote retonam false. Com isso na função Assinar também fica false e não gera nod de assinatura no arq. XML. creio que isso esteja invalidado o lote.
     
    Mais uma vez agradeço a sua ajuda.
  16. Bom dia

    Por partes:

    1 - Italo: Sei que o programa Demo é exclusivamente para dar uma ideia etc... mas as vezs para quem pega este bonde já andando como está fica complicado saber o que é erro de compilação, uso, configuração etc e o que (como no caso do "Validar rps") não funciona mesmo!

    como por exemplo as mensagens de erro que recebi noenvio de lotes (é erro ou falta alguma coisa?).

    Tenho bastante experiência com envio e retorno de NFSe no Rio de Janeiro utilizando arquivos txt mas infelizmentesão coisas bastantes diferentes. Tstei durante 2 meses um componente comercial para emissão de NFSe e verifiquei que no Rio de Janeiro o servidor de homologação aceita e processa sem dificuadades lotes contendo pelo menos 10 RPS e os retornos tambem estão funcionando perfeitamente.

    Quanto a resposta de th.Lima:

    "O ambiente de homologação pelo ACBr NFSe para o Rio de Janeiro não está configurado corretamente. O ambiente de produção e de homologação possuem algumas diferenças, mais o ambiente de produção está funcionando, na verdade para que funcione mude o arquivo nfse.xsd para o mesmo do Rio de Janeiro o nome do arquivo é tipos_nfse_01.xsd que está nos manuais do RJ. Após precisará omitir o campo: Tomador.IdentificacaoTomador.InscricaoMunicipal assim fará com que funcione no ambiente de produção. Espero ter ajudado! ;)"

    Desculpe-me mas não entendi bem sua resposta. Como falei acima, acabo de testar um compomponente e o ambiente de homologação do Rio funcionou perfeitamente !?! Vou examinar estes arquivos que voce menciona e os campos. Talvez tenha ainda alguns dos arquivos gerados e enviados pelo componente que testei.

    Edison

    Edson, boa tarde! 

     Também estou utilizando os componentes ACBr NFSe  com o Demo que é disponivel, Fiz as alterações necessárias, onde gera o RPS e lote com RPS, porém ao validar por exemplo Lote PRS ele me retorna com erro " Erro: 

    EOleException -  nfse.xsd#/schema/element[4][@name = 'EnviarLoteRpsEnvio']/complexType[1]/sequence[1]/element[2]
    Endereço: 0093427C" Pude observar quando estava observando que ao entrar na função assinar ou na função SetConfigMunicipio;  tanto ConfigCidade1.AssinaRPS e ConfigCidade1.AssinaLote retonam false. Com isso na função Assinar também fica false.
    Eu estou utilizando um certificado digital de uma empresa que não consta na lista de prestadores, e não sei se isso pode  ter relação com isso.
     
    Então como você já possou por algo parecido, peço a sua ajuda.
     
    Desde agradeço a sua atenção e compreensão.

     

     

     

     

     

     

×
×
  • 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...