Clipper On Line • Ver Tópico - Fim da Capicom

Fim da Capicom

Projeto hbNFe (Nota Fiscal Eletronica/Danfe) para [x]Harbour

Moderador: Moderadores

 

Fim da Capicom

Mensagempor JoséQuintas » 11 Mai 2017 22:58

Encontrei isto no site do ACBR

Vou postar aqui a solução, pois pode ajudar a outros que venham a passar por isso.
Como eu disse, o nosso software usa as dlls da TKS para a geração, envio, cancelamento e inutilizaçao da NFe,
e eu não sei o porque, mas não era preciso instalar o certificado A3 na maquina do usuario, bastava apenas inserir
o leitor no USB e deixar o windows reconhecer. Com o componente da ACBr não é assim, nos precisamos instalar o
certificado através do software proprio de cada empresa emissora do certificado (no caso do nosso cliente a Serasa),
e com um detalhe importante, tem que se logar na maquina como administrador. Apos a instalação, bastou registrar
as Dlls (capcon etc), que funcionou perfeitamente.


Comentário:

Apesar do certificado estar instalado no Windows, isso não elimina a necessidade do certificado físico, já que é A3.
E por necessitar o certificado físico, depende de tudo relacionado à segurança e comunicação até ele.
Sinceramente, não faço a menor idéia de como isso funciona, ou do que depende pra funcionar.

O A1, uma vez instalado no Windows, não precisa de nada adicional.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor oxent_jabah » 12 Mai 2017 06:55

Bom Dia, Quintas!

Neste momento da foto, o certificado estava na leitora de cartão, testei com as classes de emissão de NF-e e deu certo, só com a MDF-e esta dando este galho.
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fim da Capicom

Mensagempor oxent_jabah » 23 Mai 2017 10:59

Bom Dia, Quintas!

Consegui resolver o problema anterior, da etapa de assinatura do MDFe (sem validar), agora estou nas seguintes pendencias:
- ainda na primeira etapa, não estou sabendo qual dos Schemas usar para validar o XML gerado?
- Gerado (porém, não validado) e assinado, ao transmitir estou recebendo a seguinte mensagem de retorno:
"Erro SOAP: XML retorno não contém soapenv:Body Erro: Sem retorno do webservice"

PS: estou anexando os arquivos trabalhados nestas etapas aqui.
Anexos
MDFe23170507656028000120580010000000011000000017.rar
(18.73 KiB) Baixado 113 vezes
2017-05-23 (1).png
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fim da Capicom

Mensagempor JoséQuintas » 23 Mai 2017 16:23

Por coincidência, no explorer mostra 2 XMLs desses como se estivessem incompletos.
Mas pelo bloco de notas está normal.
Procurei caracteres inválidos e não encontrei.

Por exclusão, resta um problema que detectei a pouco tempo:

é enviado o XML... recebe=se o retorno
com o resultado desse, é enviado o recibo... recebe-se o retorno

Estava faltando considerar que o primeiro deu erro, e manter o retorno dele.
Por não manter o primeiro retorno, ficou só o segundo vazio, e o que interessa está no primeiro.

Atualize a classe e confirme se está ok.

Nota:
Ao mesmo tempo que a parte automática facilitou pra quando dá certo, ainda pode precisar ajustes pra quando dá errado.
É algo como etapa 1, etapa 2, etapa 3, e a classe ter mostrado apenas a resposta da etapa 3, que é insuficiente pra resolver o problema.

E se for verificar isso por debug, seria no retorno de MicrosoftXmlSoapPost(), que é a resposta exata da Fazenda. (que pra esse processo é feito duas vezes).
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor JoséQuintas » 23 Mai 2017 16:48

Só a título de curiosidade:

A alteração foi pegar o status e o motivo nas outras etapas.

https://github.com/JoseQuintas/sefazclass/commit/eba1ece30bb42385e5d863e152555ac2dd290e56

Pode ser interessante utilizar oSefaz:cStatus e oSefaz:cMotivo
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor oxent_jabah » 24 Mai 2017 09:38

Bom Dia, Quintas!

Andei pesquisando sobre possíveis problemas no retorno do envio de MDF-e e me deparei com o seguinte material, creio Eu que seja a causa da questão ou solução do problema.

https://portal.fazenda.sp.gov.br/servicos/mdfe/Downloads/MDFe_Nota_Tecnica_2015_002_WS_Distribuicao_DFE%20(1).pdf

Estas alterações do projeto já devem esta ativas, devendo ser a razão pela qual não estarmos recebendo retorno no envio.
Anexos
MDFe_Nota_Tecnica_2015_002_WS_Distribuicao_DFE.pdf
(191.57 KiB) Baixado 97 vezes
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fim da Capicom

Mensagempor JoséQuintas » 24 Mai 2017 11:23

Isso se refere a distribuição de documento, é algo como um projeto a parte.

Vamos raciocinar:

MDFE é o único dos documentos aonde TUDO é feito no RS, seja qual for a UF.
Se é igual pra todo mundo, e aí não está funcionando... alguma coisa por aí está atrapalhando.

Requisitos:

- Capicom
- MSXML5, que tem que ser registrado como administrador

Como o Windows funciona com relação a DLLs registradas:

Em Windows 32 bits: é tudo instalado em c:\Windows\System32, afinal 64 bits não entra.

Em Windows 64 bits, é aí que a coisa pega:
É daí que devem vir os problemas....

Programas em 64 bits acessam o que está na pasta \Windows\System32, e nela tem regsvr32.exe pra 64 bits
Programas em 32 bits acessam o que está na pasta \Windows\SysWow64, e nela tem regsvr32.exe pra 32 bits
Se você usar Harbour 32 bits, tem que registrar DLLs com o regsvr32.exe que está em \Windows\SysWow64
Se você usar Harbour 64 bits, tem que registrar DLLs com o regsvr32.exe que está em \Windows\System32

E certificado A3?
O equipamento leitor de certificados usa DLLs próprias.
Não faço idéia de como isso é controlado, se o certificado instala opção pra 32 e 64 bits, ou se apenas pra uma delas.
Se alguma DLL for necessária, mas não estiver disponível, simplesmente não funciona.

Por muitos anos ainda vamos ter problemas por misturar 16 bits/32 bits, 32 bits/64 bits, codepage.
Clippper 16 bits, Borland C 32 bits... tudo isso um dia vai acabar, de um jeito ou de outro.
Até lá, talvez comecem os problemas de 128 bits ou mais bits.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor oxent_jabah » 24 Mai 2017 11:43

Quintas,

Uma outra coisa que estou observando é os endereços do Serviço, veja os atuais obtidos no site da MDF-e https://mdfe-portal.sefaz.rs.gov.br/Site/Servicos :

Relação dos Serviços Web de Produção
Serviço Versão URL
MDFeRecepcao 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx
MDFeRetRecepcao 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx
MDFeRecepcaoEvento 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx
MDFeConsulta 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx
MDFeStatusServico 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx
MDFeConsNaoEnc 1.0 https://mdfe.svrs.rs.gov.br/ws/MDFeConsNaoEnc/MDFeConsNaoEnc.asmx
Para obtenção do WSDL informe a URL do respectivo serviço concatenado com o parâmetro ?wsdl

Relação dos Serviços Web de Homologação
Serviço Versão URL
MDFeRecepcao 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx
MDFeRetRecepcao 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx
MDFeRecepcaoEvento 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx
MDFeConsulta 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx
MDFeStatusServico 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx
MDFeConsNaoEnc 1.0 https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsNaoEnc/MDFeConsNaoEnc.asmx
Para obtenção do WSDL informe a URL do respectivo serviço concatenado com o parâmetro ?wsdl
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fim da Capicom

Mensagempor JoséQuintas » 24 Mai 2017 12:43

e isso não tá certo?

METHOD SetSoapURL( nWsServico ) CLASS SefazClass

   ::cSoapURL := ""
...
   CASE ::cProjeto == WS_PROJETO_MDFE
      ::cSoapURL := SoapURL_RS( ::cAmbiente, nWsServico, ::cVersao )
...
FUNCTION SoapURL_RS( cAmbiente, nWsServico, ... )

   LOCAL cUrlWs := ""

   IF cAmbiente == WS_AMBIENTE_PRODUCAO
      DO CASE
      CASE nWsServico == WS_CTE_RECEPCAO ;            cUrlWs := "https://cte.svrs.rs.gov.br/ws/cterecepcao/CteRecepcao.asmx"
      CASE nWsServico == WS_CTE_RETRECEPCAO ;         cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteretrecepcao/cteRetRecepcao.asmx"
      CASE nWsServico == WS_CTE_INUTILIZACAO ;        cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteinutilizacao/cteinutilizacao.asmx"
      CASE nWsServico == WS_CTE_CONSULTAPROTOCOLO ;   cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"
      CASE nWsServico == WS_CTE_STATUSSERVICO ;       cUrlWs := "https://cte.svrs.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx"
      CASE nWsServico == WS_CTE_RECEPCAOEVENTO ;      cUrlWs := "https://cte.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx"
      CASE nWsServico == WS_MDFE_DISTRIBUICAODFE ;    cUrlWs := "https://mdfe.svrs.rs.gov.br/WS/MDFeDistribuicaoDFe/MDFeDistribuicaoDFe.asmx"
      CASE nWsServico == WS_MDFE_CONSULTA ;           cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAO ;           cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAOEVENTO ;     cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx"
      CASE nWsServico == WS_MDFE_RETRECEPCAO ;        cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx"
      CASE nWsServico == WS_MDFE_STATUSSERVICO ;      cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx"
      CASE nWsServico == WS_MDFE_CONSNAOENC ;         cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/mdfeConsNaoEnc/mdfeConsNaoenc.asmx"
      CASE nWsServico == WS_NFE_AUTORIZACAO ;         cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx"
      CASE nWsServico == WS_NFE_CONSULTACADASTRO ;    cUrlWs := "https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx"
      CASE nWsServico == WS_NFE_CONSULTADEST ;        cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/nfeConsultaDest/nfeConsultaDest.asmx"
      CASE nWsServico == WS_NFE_CONSULTAPROTOCOLO ;   cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
      CASE nWsServico == WS_NFE_DOWNLOADNF ;          cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/nfeDownloadNF/nfeDownloadNF.asmx"
      CASE nWsServico == WS_NFE_INUTILIZACAO ;        cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
      CASE nWsServico == WS_NFE_RECEPCAOEVENTO ;      cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx"
      CASE nWsServico == WS_NFE_RETAUTORIZACAO ;      cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx"
      CASE nWsServico == WS_NFE_STATUSSERVICO ;       cUrlWs := "https://nfe.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx"
      ENDCASE
   ELSE
      DO CASE
      CASE nWsServico == WS_CTE_RECEPCAO ;            cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcao/CteRecepcao.asmx"
      CASE nWsServico == WS_CTE_RETRECEPCAO ;         cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteretrecepcao/cteRetRecepcao.asmx"
      CASE nWsServico == WS_CTE_INUTILIZACAO ;        cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteinutilizacao/cteinutilizacao.asmx"
      CASE nWsServico == WS_CTE_CONSULTAPROTOCOLO ;   cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"
      CASE nWsServico == WS_CTE_STATUSSERVICO ;       cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx"
      CASE nWsServico == WS_CTE_RECEPCAOEVENTO ;      cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx"
      CASE nWsServico == WS_MDFE_CONSULTA ;           cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx"
      CASE nWsServico == WS_MDFE_CONSNAOENC ;         cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsNaoEnc/MDFeConsNaoEnc.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAO ;           cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAOEVENTO ;     cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx"
      CASE nWsServico == WS_MDFE_RETRECEPCAO ;        cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx"
      CASE nWsServico == WS_MDFE_STATUSSERVICO ;      cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx"
      CASE nWsServico == WS_NFE_AUTORIZACAO ;         cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx"
      CASE nWsServico == WS_NFE_CONSULTACADASTRO ;    cUrlWs := "https://cad.sefazrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx"
      CASE nWsServico == WS_NFE_CONSULTADEST ;        cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/nfeConsultaDest/nfeConsultaDest.asmx"
      CASE nWsServico == WS_NFE_CONSULTAPROTOCOLO ;   cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
      CASE nWsServico == WS_NFE_DOWNLOADNF ;          cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/nfeDownloadNF/nfeDownloadNF.asmx"
      CASE nWsServico == WS_NFE_INUTILIZACAO ;        cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
      CASE nWsServico == WS_NFE_RECEPCAOEVENTO ;      cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx"
      CASE nWsServico == WS_NFE_RETAUTORIZACAO ;      cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx"
      CASE nWsServico == WS_NFE_STATUSSERVICO ;       cUrlWs := "https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx"
      ENDCASE
   ENDIF

   RETURN cUrlWs


Até vou alterar tudo referente a SVRS pra ficar em SoapUrl_SVRS.
E com isso alterar também aquele CASE do MDFe, e também os CASEs do CTE
Isso vai ter o mesmo resultado, é apenas pra organizar endereços do SVRS no fonte.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor JoséQuintas » 24 Mai 2017 12:53

Só pra deixar tudo de SVRS num lugar só...
Lógico... com isso tive que alterar também os relacionados a SVRS no bloco de CTE

METHOD SetSoapURL( nWsServico ) CLASS SefazClass

   ::cSoapURL := ""
   DO CASE
   CASE ::cProjeto == WS_PROJETO_CTE
      IF ::cScan == "SVCAN"
         IF ::cUF $ "MG,PR,RS," + "AC,AL,AM,BA,CE,DF,ES,GO,MA,PA,PB,PI,RJ,RN,RO,RS,SC,SE,TO"
            ::cSoapURL := SoapURL_SVSP( ::cAmbiente, nWsServico, ::cVersao ) // SVC_SP não existe
         ELSEIF ::cUF $ "MS,MT,SP," + "AP,PE,RR"
            ::cSoapURL := SoapURL_SVRS( ::cAmbiente, nWsServico, ::cVersao ) // SVC_RS não existe
         ENDIF
      ELSE
         IF ::cUF $ "AP,PE,RR"
            ::cSoapURL := SoapURL_SVSP( ::cAmbiente, nWsServico, ::cVersao )
         ELSEIF ::cUF $ "AC,AL,AM,BA,CE,DF,ES,GO,MA,PA,PB,PI,RJ,RN,RO,RS,SC,SE,TO"
            ::cSoapURL := SoapURL_SVRS( ::cAmbiente, nWsServico, ::cVersao )
         ENDIF
      ENDIF
   CASE ::cProjeto == WS_PROJETO_MDFE
      ::cSoapURL := SoapURL_SVRS( ::cAmbiente, nWsServico, ::cVersao )
...
FUNCTION SoapURL_SVRS( cAmbiente, nWsServico, ... )

   LOCAL cUrlWs := ""

   IF cAmbiente == WS_AMBIENTE_PRODUCAO
      DO CASE
      CASE nWsServico == WS_CTE_RECEPCAO ;            cUrlWs := "https://cte.svrs.rs.gov.br/ws/cterecepcao/CteRecepcao.asmx"
      CASE nWsServico == WS_CTE_RETRECEPCAO ;         cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteretrecepcao/cteRetRecepcao.asmx"
      CASE nWsServico == WS_CTE_INUTILIZACAO ;        cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteinutilizacao/cteinutilizacao.asmx"
      CASE nWsServico == WS_CTE_CONSULTAPROTOCOLO ;   cUrlWs := "https://cte.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"
      CASE nWsServico == WS_CTE_STATUSSERVICO ;       cUrlWs := "https://cte.svrs.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx"
      CASE nWsServico == WS_CTE_RECEPCAOEVENTO ;      cUrlWs := "https://cte.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx"
      CASE nWsServico == WS_MDFE_DISTRIBUICAODFE ;    cUrlWs := "https://mdfe.svrs.rs.gov.br/WS/MDFeDistribuicaoDFe/MDFeDistribuicaoDFe.asmx"
      CASE nWsServico == WS_MDFE_CONSULTA ;           cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAO ;           cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAOEVENTO ;     cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx"
      CASE nWsServico == WS_MDFE_RETRECEPCAO ;        cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx"
      CASE nWsServico == WS_MDFE_STATUSSERVICO ;      cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx"
      CASE nWsServico == WS_MDFE_CONSNAOENC ;         cUrlWs := "https://mdfe.svrs.rs.gov.br/ws/mdfeConsNaoEnc/mdfeConsNaoenc.asmx"
      CASE nWsServico == WS_NFE_AUTORIZACAO ;         cUrlWs := "https://nfe.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx"
      CASE nWsServico == WS_NFE_CONSULTACADASTRO ;    cUrlWs := "https://cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx"
      CASE nWsServico == WS_NFE_CONSULTAPROTOCOLO ;   cUrlWs := "https://nfe.svrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
      CASE nWsServico == WS_NFE_INUTILIZACAO ;        cUrlWs := "https://nfe.svrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
      CASE nWsServico == WS_NFE_RECEPCAOEVENTO ;      cUrlWs := "https://nfe.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx"
      CASE nWsServico == WS_NFE_RETAUTORIZACAO ;      cUrlWs := "https://nfe.svrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx"
      CASE nWsServico == WS_NFE_STATUSSERVICO ;       cUrlWs := "https://nfe.svrs.rs.gov.br/ws/nfeStatusServico/NfeStatusServico2.asmx"
      ENDCASE
   ELSE
      DO CASE
      CASE nWsServico == WS_CTE_RECEPCAO ;            cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcao/CteRecepcao.asmx"
      CASE nWsServico == WS_CTE_RETRECEPCAO ;         cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteretrecepcao/cteRetRecepcao.asmx"
      CASE nWsServico == WS_CTE_INUTILIZACAO ;        cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteinutilizacao/cteinutilizacao.asmx"
      CASE nWsServico == WS_CTE_CONSULTAPROTOCOLO ;   cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cteconsulta/CteConsulta.asmx"
      CASE nWsServico == WS_CTE_STATUSSERVICO ;       cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx"
      CASE nWsServico == WS_CTE_RECEPCAOEVENTO ;      cUrlWs := "https://cte-homologacao.svrs.rs.gov.br/ws/cterecepcaoevento/cterecepcaoevento.asmx"
      CASE nWsServico == WS_MDFE_CONSULTA ;           cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsulta/MDFeConsulta.asmx"
      CASE nWsServico == WS_MDFE_CONSNAOENC ;         cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeConsNaoEnc/MDFeConsNaoEnc.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAO ;           cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFerecepcao/MDFeRecepcao.asmx"
      CASE nWsServico == WS_MDFE_RECEPCAOEVENTO ;     cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRecepcaoEvento/MDFeRecepcaoEvento.asmx"
      CASE nWsServico == WS_MDFE_RETRECEPCAO ;        cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeRetRecepcao/MDFeRetRecepcao.asmx"
      CASE nWsServico == WS_MDFE_STATUSSERVICO ;      cUrlWs := "https://mdfe-homologacao.svrs.rs.gov.br/ws/MDFeStatusServico/MDFeStatusServico.asmx"
      CASE nWsServico == WS_NFE_AUTORIZACAO ;         cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao.asmx"
      CASE nWsServico == WS_NFE_CONSULTACADASTRO ;    cUrlWs := "https://cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro2.asmx"
      CASE nWsServico == WS_NFE_CONSULTAPROTOCOLO ;   cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/NfeConsulta/NfeConsulta2.asmx"
      CASE nWsServico == WS_NFE_INUTILIZACAO ;        cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/nfeinutilizacao/nfeinutilizacao2.asmx"
      CASE nWsServico == WS_NFE_RECEPCAOEVENTO ;      cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/recepcaoevento.asmx"
      CASE nWsServico == WS_NFE_RETAUTORIZACAO ;      cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/NfeRetAutorizacao/NFeRetAutorizacao.asmx"
      CASE nWsServico == WS_NFE_STATUSSERVICO ;       cUrlWs := "https://nfe-homologacao.svrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico2.asmx"
      ENDCASE
   ENDIF

   RETURN cUrlWs


No caso do MDFE não, porque é tudo igual, mas no caso de NFE e CTE pode haver diferença entre as UFs.
No momento tentando descobrir uma diferença na comunicação de NFE do ACRE.
Se alguém souber....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor JoséQuintas » 24 Mai 2017 14:41

Acre resolvido, era problema no XML, acabo de autorizar.
Por coincidência, NFE do Acre é no SVRS, mas não tem nada a ver com MDFe... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Fim da Capicom

Mensagempor oxent_jabah » 24 Mai 2017 20:23

Boa Noite, Quintas!

O problema com a assinatura do xml já foi resolvido.
O problema agora é no envio para o WebService que não esta recebendo o xml do Manifesto postado, a classe esta devolvendo a seguinte mensagem "Erro SOAP: XML retorno não contém soapenv:Body Erro: Sem retorno do webservice" e já verifiquei o retorno do método ::XmlSoapPost().
O objeto OLE do método ::MicrosoftXmlSoapPost() esta retornando NIL na propriedade oServer:ResponseBody.
Verifiquei também o envelopamento Soap12 para o envio e não encontrei nenhuma diferença visível.

Isso esta acontecendo em máquinas contendo Windows 7 x64 e Windows 10 x64, as dlls estão instaladas e registradas corretamentes. Inclusive a máquina com Windows 7, foi formatada ontem e toda instalação de certificado, capicom.dll e msxml5*.dll foram reinstalados e registrados, sendo estas ultimas realizadas manualmente para garantir o correto funcionamento das mesmas.
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Fim da Capicom

Mensagempor JoséQuintas » 25 Mai 2017 13:15

Briguei com algo no Acre, não sei se pode ser a mesma coisa.

Pelo menos na fase inicial é obrigatório validar o XML.

Apesar da mensagem ser na comunicação, pode ser problema no XML.

O que acontece:

1. Tem seu XML de documento
2. Seu XML de documento é colocado dentro do XML de lote, vira um XML maior
3. O XML do lote é colocado dentro do XML do envelope, vira um XML maior

Se tiver problema no XML, ao transmitir, a Fazenda rejeita a comunicação.

Um dos problemas com Acre foi o XML da nota com a declaração "<XML version 1.00>
Removendo isso do XML da nota ficou resolvido.

Fácil entender: essa declaração é no início do XML, como TUDO virou um "XMLzão", se o documento contiver a declaração, ela passa a ficar no meio e não no início.
Ela não faz parte da assinatura, pode ser removida normalmente.

E quando se abre no explorer, qualquer XML, é mostrada essa declaração no início sempre, o que faz quem está vendo pensar que ela existe no XML.
Compare o conteúdo verdadeiro do XML com o que aparece no explorer:

xml.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para Projeto hbNFe

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro