Ir para conteúdo
  • Cadastre-se

DanrleiNascimento

Membros
  • Total de ítens

    42
  • Registro em

  • Última visita

Community Answers

  1. DanrleiNascimento's post in erro RNG9999 ao enviar DPS para Portal Nacional NFS-e was marked as the answer   
    Problemas identificados
    1. Formato de envio incorreto
    Projeto atual (funciona):
    Envia JSON: {"dpsXmlGZipB64": "..."}
    Content-Type: application/json
    Método: POST REST
    Projeto wsrtph (não funciona):
    Envia SOAP XML (para NFe)
    Content-Type: text/xml
    Método: POST SOAP
    2. Falta de compactação e codificação
    Projeto atual (funciona):
      # 1. XML → Bytes  xml_bytes = xml_string.encode('utf-8')  # 2. Comprimir GZIP  xml_gzip = gzip.compress(xml_bytes, compresslevel=9)  # 3. Codificar Base64  xml_base64 = base64.b64encode(xml_gzip).decode('ascii')
    Projeto wsrtph (não funciona):
    Não comprime com GZIP
    Não codifica em Base64
    Envia XML direto (método de NFe)
    3. Assinatura digital diferente
    Projeto atual (funciona):
    Canonicalização: http://www.w3.org/2001/10/xml-exc-c14n#WithComments
    Algoritmos: SHA-256 (com fallback SHA-1)
    Transform: xml-exc-c14n#WithComments
    Projeto wsrtph (não funciona):
    Canonicalização: http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (C14N padrão)
    Sem WithComments
    Transform: C14N padrão
    4. URL e endpoint incorretos
    Projeto atual (funciona):
    URL: https://sefin.nfse.gov.br/SefinNacional/nfse
    Endpoint REST para NFS-e
    Projeto wsrtph (não funciona):
    URLs de NFe (SOAP)
    Exemplo: https://nfe-homologacao.svrs.rs.gov.br/ws/recepcaoevento/...
  2. DanrleiNascimento's post in Emitir Nfs-e pelo WebService Pública was marked as the answer   
    SOLUÇÃO:
    Envelope:
    <?xml version="1.0" encoding="utf-8"?>
    <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://service.nfse.integracao.ws.publica/\">
    <soapenv:Body>
    <ser:RecepcionarLoteRps>
    <XML>
    <![CDATA[ AQUI COLOCA O XML ]]>
    </XML>
    </ser:RecepcionarLoteRps>
    </soapenv:Body>
    </soapenv:Envelope
  3. DanrleiNascimento's post in Emitir Nfs-e pelo WebService Pública was marked as the answer   
    SOLUÇÃO:
    Envelope:
    <?xml version="1.0" encoding="utf-8"?>
    <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://service.nfse.integracao.ws.publica/\">
    <soapenv:Body>
    <ser:RecepcionarLoteRps>
    <XML>
    <![CDATA[ AQUI COLOCA O XML ]]>
    </XML>
    </ser:RecepcionarLoteRps>
    </soapenv:Body>
    </soapenv:Envelope
  4. DanrleiNascimento's post in Selecionar Certifica na tela aberta pelo Java was marked as the answer   
    SOLUÇÃO: Os certificados são sempre apresentados em ordem de vencimento do maior para o menor. Eu consigo ler quais os certificados estão instalados na máquina usando TElWinCertStorage. Então eu os ordeno da mesma forma e localizo a posição dele. Então quando abre a tela para selecionar, eu clico no certificado certo usando os comandos do teclado.
     
    void __fastcall TfrmNavegador::TimerSelecionarCertificadoTimer(TObject *Sender)
     {
      TimerSelecionarCertificado->Enabled = false;
        Application->ProcessMessages();
        Sleep(1000);
        if(!FindWindowW(NULL, String("Segurança do Windows").c_str()))
         {
          TimerSelecionarCertificado->Enabled = true;
          return;
         }
        setLog("Selecionando certificado.");
        WebBrowser1->Silent = true;
        Application->ProcessMessages();
        Sleep(1000);
        for(int i = 0; i < getPosicaoCertificado(); i++)
         {
          keybd_event(VK_DOWN, 0, 0, 0);
          keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
          Sleep(100);
         }
        keybd_event(VK_RETURN, 0, 0, 0);
        keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
     }
×
×
  • 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.