Mudanças entre as edições de "SEFAZ"
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 12: | Linha 12: | ||
= Métodos Disponibilizados = | = Métodos Disponibilizados = | ||
Os métodos disponibilizados nesta classe | Os métodos disponibilizados nesta classe refletem os mesmos métodos disponibilizados nos diferentes WebServices da SEFAZ. | ||
Por exmeplo, ao abrir o endereço do WebService, é exibido os nomes dos métodos que aquele WebService disponibilida, o nome desses métodos é utilizado como base dos métodos desta classe. Veja um exemplo do WebService https://www.sefazvirtual.fazenda.gov.br/NFeStatusServico4/NFeStatusServico4.asmx: | |||
[[File:Sefaz_nomedosmetodos.png|link=|center|border|Exemplo de método disponibilizado pelo WebService]] | |||
* '''Versão do XSD''' - a versão do arquivo XSD utilizada para acionar este método é anexada ao método, assim o RFW consegue manter os métodos antigos enquanto for possível a medida que agrega as novas atualizações requeridas. | São acrescentados alguns sufixos aos nomes originais para demonstrar algumas diferenças na implementação desses métodos. Os prefixos são: | ||
* '''V[Versão do XSD]''' - a versão do arquivo XSD utilizada para acionar este método é anexada ao método, assim o RFW consegue manter os métodos antigos enquanto for possível a medida que agrega as novas atualizações requeridas. | |||
* '''by[Chave]''' - Métodos de consulta que precisam de poucos argumentos, como consulta de cadastro por CNPJ, ou resultado de processamento da NFe por Número do Recibo têm métodos co esse sufixo. Este métodos recebem os argumentos diretamente, sem que seja necessário montar o objeto JAXB para realizar a consulta pelo método convêncional. | * '''by[Chave]''' - Métodos de consulta que precisam de poucos argumentos, como consulta de cadastro por CNPJ, ou resultado de processamento da NFe por Número do Recibo têm métodos co esse sufixo. Este métodos recebem os argumentos diretamente, sem que seja necessário montar o objeto JAXB para realizar a consulta pelo método convêncional. | ||
* '''asXML''' - O método que tem esse sufixo final retorna o XML em formato String (bruto) do jeito como foi recebido do WebService, enquanto que o método sem esse sufixo retorna a mensagem já 'convertida' no objeto equivalente criado pelo JAXB. | * '''asXML''' - O método que tem esse sufixo final retorna o XML em formato String (bruto) do jeito como foi recebido do WebService, enquanto que o método sem esse sufixo retorna a mensagem já 'convertida' no objeto equivalente criado pelo JAXB. | ||
Linha 35: | Linha 37: | ||
A depender da complexidade e das informações necessárias para a chamada do método remoto, o método receberá como argumentos: | A depender da complexidade e das informações necessárias para a chamada do método remoto, o método receberá como argumentos: | ||
* | * o objeto JAXB com o conteúdo a ser convertido no XML e enviado; ou, | ||
* | * apenas as informações necessárias e montará o objeto/XML a ser transmitido internamente. |
Edição atual tal como às 20h40min de 12 de fevereiro de 2025
Esta classe representa um WebService da SEFAZ. Reponsável por realizar toda a comunicação com a SEFAZ e abstraír os métodos remotos como métodos locais.
Iinicialização
A classe deve ser instanciada passando 3 ou 4 parâmetros para definir o WebService a ser utilizado:
- Certificado - Passe a implementação da interface RFWCertificate para definir o certificado do cliente a ser utilizado durante a comunicação. O sertificado do cliente é utilizado quando solicitado pela SEFAZ, entre eles: assinatura da mensagem, assinatura de documentos (como a NFe e a NFCe) e autenticação da conexão.
- Servidor WebService - Representação pela enum SefazWebServices do webservice a ser utilizado. Podendo ser o servidor dos estados suportados, do sistema virtual ou ainda do sistema virtual de contingência.
- Ambiente - Indica se deve se comunicar com o ambiente de homologação (testes/sem validade fiscal) ou de produção (com validade fiscal).
- Certificados Confiáveis [Opcional] - Outra implementação da classe RFWCertificate utilizada para passar os certificados raiz que são considerados confiáveis. Na prática, pode ser passado um JKS (Java Key Store) com os certificados dos servidores para validar e confiar na comunixação). Se não for passado o módulo utilizará o JKS interno com os certificados que estavam válidos no momento de compilação da versão do módulo. Como os sertificados tem data de validade, com o tempo o KeyStore interno pode ter apenas certificados inválidos.
Métodos Disponibilizados
Os métodos disponibilizados nesta classe refletem os mesmos métodos disponibilizados nos diferentes WebServices da SEFAZ.
Por exmeplo, ao abrir o endereço do WebService, é exibido os nomes dos métodos que aquele WebService disponibilida, o nome desses métodos é utilizado como base dos métodos desta classe. Veja um exemplo do WebService https://www.sefazvirtual.fazenda.gov.br/NFeStatusServico4/NFeStatusServico4.asmx:

São acrescentados alguns sufixos aos nomes originais para demonstrar algumas diferenças na implementação desses métodos. Os prefixos são:
- V[Versão do XSD] - a versão do arquivo XSD utilizada para acionar este método é anexada ao método, assim o RFW consegue manter os métodos antigos enquanto for possível a medida que agrega as novas atualizações requeridas.
- by[Chave] - Métodos de consulta que precisam de poucos argumentos, como consulta de cadastro por CNPJ, ou resultado de processamento da NFe por Número do Recibo têm métodos co esse sufixo. Este métodos recebem os argumentos diretamente, sem que seja necessário montar o objeto JAXB para realizar a consulta pelo método convêncional.
- asXML - O método que tem esse sufixo final retorna o XML em formato String (bruto) do jeito como foi recebido do WebService, enquanto que o método sem esse sufixo retorna a mensagem já 'convertida' no objeto equivalente criado pelo JAXB.
![]() |
|
Métodos Diretos
A depender da complexidade e das informações necessárias para a chamada do método remoto, o método receberá como argumentos:
- o objeto JAXB com o conteúdo a ser convertido no XML e enviado; ou,
- apenas as informações necessárias e montará o objeto/XML a ser transmitido internamente.