Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Giancarlo Braga

Nota Fiscal Eletrônica - Fase final

Recommended Posts

Amigos, boa noite.

 

Estou implementando a NFe na empresa que trabalho e tenho mais uns 30 dias de prazo para concluir o projeto.

Por enquanto estamos caminhando bem. Estou razoavelmente otimista.

 

Já fiz:

- Gerar XML pelo ASP 3.0 baseado nas regras da empresa.

- Assinar XML com certificado digital. Estamos usando o A1. E aparentemente já está tudo de acordo com o ProcNfe_V2.00.XSD. Acabei validando também com aquele validador online meio mágico da SEFAZ RS.

 

Agora falta o esquema todo de transmissão. E francamente estou preocupado com a falta de informação nisso.

Eu já entendi o processo de envio e recebimento de webservices, mas estou bem inseguro nessa jornada.

A documentação dos caras achei bem crua. Mostra só os campos, sem exemplos ou demonstrações.

 

Vocês têm alguma recomendação para essa fase final? Têm algum tutorial? Algum exemplo de conexão com webservices da SEFAZ?

Pode ser em CSharp ou VB.NET ou qualquer outra linguagem, sem problemas...gostaria de compartilhar experiências.

 

Penso até em depois publicar um projeto OPEN-SOURCE para isso. Carece muito de informações. Aceito sugestões.

Quem sabe juntos não façamos um mega projeto OPEN de exemplo para esse assunto?

 

Grato por qualquer informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá

 

primeiro uma pergunta: você está usando o A1 em windows server ??w se sim como você fez pois to que nem um louco tentando achar solução...

 

...........................................

 

agora o moderador voltou (kkkkk)

 

eu fiz da seguinte forma, usando framework 3.5 sendo que em desktop

 

-Adicionei a referência do webserivce no meu projeto, por exemplo para o servico de recepção de NFe, coloquei o nome SNFeRecepcao

 

inseri o seguinte código, estou me baseando em um envio para o RJ

 


       	Dim cons As New SNfeRecepcao.NfeRecepcao2
       	Dim cab As New SNfeRecepcao.nfeCabecMsg
       	Dim versao As String
       	Dim ambiente As String

       	Dim docEnvio As New XmlDocument
       	Dim docRet As New XmlDocument

       	Dim xmlRet As XmlElement

       	'Verifica se o lote existe
       	If Me.Existe Then

           	'Verifica se o arquivo já foi enviado
           	If Nz(Me.Item.statusEnvio, "") = "" Then


               	'Carregar a versão do aplicativo que está sendo utilizada
               	versao = Sys.Parametro("versao")



               	'Ambiente verifica o ambiente do lote
               	ambiente = "2"



               	'Monta o cabeçalho
               	cab.cUF = 35
               	cab.versaoDados = versao

               	'Define parâmetros da solicitação
               	cons.Timeout = 120000
               	cons.nfeCabecMsgValue = cab
               	cons.ClientCertificates.Add(_certificado)

               	'Faço esse cara de forma dinâmica poi trabalho com mais de uma UF
               	cons.Url = "urldo webservice"

               	'Carrega o arquivo de lote já assinado
               	docEnvio.Load("caminho do arquivo de lote")

               	'Efetua a solicitação do lote
               	Try

                   	'Enviando mensagem SOAP
                   	xmlRet = cons.nfeRecepcaoLote2(docEnvio)


                   	'Cria xmlDocument com o resultado da requisição do SOAP
                   	docRet.LoadXml(xmlRet.OuterXml)

 

--------------------------------------------------------------

Com relação ao projeto Open-source, acho mais válido um blog que dá dicas, pois você poderá ser exigido com relação à suporte, e alem disso não gosto muito de open-source, mas isso é algo pessoal..

 

prefiro postar no fórum pois se torna mais publico, e o cara tem que se virar um pouco , kkkk

 

espero que esse pedaço de código te ajude um pouco

 

qq coisa posta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, obrigado aí pela ajuda, Daniel.

 

Amanhã em horário de trabalho vou tentar fazer isso.

E aí posto resultados pra compartilharmos informações.

 

Sobre o certificado A1, por enquanto só instalei em máquina com Windows normal, sem ser Server. Mas amanhã provavelmente tentaremos instalar em Windows Server. Na verdade precisarei que seja instalado pra funcionar nesse esquema especial que bolei. Caso contrário vamos ter que colocar uma máquina acessória junto do servidor com Windows 7 só pra essa tarefa de autenticação, rs....No meu caso, a demanda da empresa seria tranquila considerando uma máquina mais ou menos forte com bastante memória RAM, como lá na empresa a emissão de notas não é muito grande funcionaria bem.

 

Como você tá se virando com essa limitação de Windows Server?

 

Sobre o open-source, realmente, de repente abro um blog sobre isso, ou crio um tópico especial com diretivas sobre a NFe. É um assunto que apesar de não ser tão novo ainda gera muita dúvida, não é mesmo? Mas de fato, não queria deixar tudo muito aberto, nada como o friozinho na barriga do prazo acabando pra implementar a NFe, rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relação ao servidor aconteceu algo parecido comigo..

 

Eu tive pouco tempo para desenvolver a aplicação, tive que colocar em operação em 30 dias pois caimos em obrigatoriedade..

 

Com relação à questão das dúvidas a verdade é que treinamento para NFe está muito caro, principalmente no que diz respeito à comunicação com webservice e a assinatura com o certificado

 

Atualmente uso um cartão A3, na máquina de desenvolvimento, que é Vista,eu pego as notas via webservice no meu servidor que está em uma data center, gero a NFe faço todo e qualquer processo que usa o certificado e envio de volta pro servidor por outro web service

 

E estamos pra compra um cartão A1 e montar um máquina XP ou 7 para isso..

 

Vi um técnica para você usar o a1 no server mas não testei, que conciste em você instalar e exportar o certificado em uma máquina XP , e depois importar em uma máquina server,

 

o cara fez isso com um certificado Serasa, não sei se da certo. esse é o link http://www.guj.com.br/java/199617-nfe---certificado-a1-do-serasa-em-ambiente-diferente-de-windows-xp-ou-vista

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relação ao servidor aconteceu algo parecido comigo..

 

Eu tive pouco tempo para desenvolver a aplicação, tive que colocar em operação em 30 dias pois caimos em obrigatoriedade..

 

Com relação à questão das dúvidas a verdade é que treinamento para NFe está muito caro, principalmente no que diz respeito à comunicação com webservice e a assinatura com o certificado

 

Atualmente uso um cartão A3, na máquina de desenvolvimento, que é Vista,eu pego as notas via webservice no meu servidor que está em uma data center, gero a NFe faço todo e qualquer processo que usa o certificado e envio de volta pro servidor por outro web service

 

E estamos pra compra um cartão A1 e montar um máquina XP ou 7 para isso..

 

Vi um técnica para você usar o a1 no server mas não testei, que conciste em você instalar e exportar o certificado em uma máquina XP , e depois importar em uma máquina server,

 

o cara fez isso com um certificado Serasa, não sei se da certo. esse é o link http://www.guj.com.br/java/199617-nfe---certificado-a1-do-serasa-em-ambiente-diferente-de-windows-xp-ou-vista

 

 

Opa, parece bom. Depois eu vou tentar essa técnica e te falo. Acabou que aqui na empresa vamos deixar para os próximos dias o uso do A1 no Windows Server e aí te informo o status. Por enquanto tá instalado aqui na minha máquina mesmo. Mas ao comprar o certificado, reparei que o próprio SERASA já fala que não instala no Windows Server naquele formato padrão e lembrei do que me disse...complexo, né? Acho que vamos ter que usar uma máquina acessória mesmo caso não consiga.

 

Daniel, mudando de assunto, tenho uma dúvida aqui que não ficou claro pra mim de jeito nenhum e acho que você consegue me ajudar. Essa documentação deles é complicada e tem pontos que ficam obscuros mesmo lendo, relendo e procurando na Internet, rs.

 

Dentro do programa em VB.NET que eu estou assinando o XML fiz também um esquema de validação do XML com Schema, certo? Para validar estou usando o Schema procNFe_v2.00.xsd, baixável no site deles. Usei o mais recente e tudo mais, tá funcionando.

 

No entanto, ele está somente validando quando incluo manualmente a parte do <protNfe>. Assim como também aquele link da SEFAZ RS(http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx) valida somente com o uso do protNfe.

 

No entanto, pelo que consta na documentação, parece que esse protNFe é o protocolo de retorno do webservice de consulta, não é? Segundo o que li ele deve ser incluso no arquivo que é enviado ao cliente. Somente no documento final teria então essa tag.

 

Sendo assim, qual Schema ou como posso fazer para pré-validar o documento XML com schemas antes de transmitir? Você sabe como posso proceder?

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos!

 

Aproveitando o assunto...

 

Será que vocês conseguem me ajudar?

Preciso montar a assinatura em xml com o certificado que está instalado no servidor.

 

Alguém poderia enviar um exemplo de como fazer isso? se possível em c#!

 

Muito Obrigado!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja aqui:

http://nf-eletronica.com/blog/?p=47

 

Exemplo de assinatura em C# do x509.

 

Abraço,

Giancarlo Braga.

 

 

Era o que eu precisava

 

Muito Obrigado!

 

Abraços

 

 

Luiz Carlos Oliveira

 

 

Boa tarde!

 

Alguem sabe o xml esperado para a o programa fazer a assinatura?

Nesse link que foi passado tem um arquivo Assinatura.xml, porém o link está quebrado.

 

Como o link não funcionava eu simulei o arquivo xml para poder gerar a assinatura. O problema agora é que ao tentar gravar ele retorna o seguinte erro:

 

"Erro: Ao assinar o documento - Um contexto XmlDocument é necessário para transformações envelopadas."

 

Se alguem puder ajudar eu agradeço.

 

Obrigado e Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uns exemplos aqui:

http://www.robertodiasduarte.com.br/nf-e-exemplos-de-xml-e-danfe/

 

E você pode usar esse validador de XML online da SEFAZ RS:

http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx

 

Abraço.

 

 

Bom dia!

 

Encontrei o formato do xml, minha dúvida agora é como popular esse xml.

Meu código está assim:

 

string xml = "";

xml = "<?xml version=1.0 encoding=utf-8?>";

xml += "<Ref Id=" + X509Cert.??? + ">";

xml += " <SignedInfo Id=" + X509Cert.??? + ">";

xml += " <CanonicalizationMethod/>";

xml += " <SignatureMethod>" + X509Cert.??? + "</SignatureMethod>";

xml += " <Reference Id=" + X509Cert.??? + ">";

xml += " <Transforms>";

xml += " <Transform>";

xml += " <XPath>" + X509Cert.??? + "</XPath>";

xml += " </Transform>";

xml += " </Transforms>";

xml += " <DigestMethod/>";

xml += " <DigestValue>" + X509Cert.??? + "</DigestValue>";

xml += " </Reference>";

xml += " </SignedInfo>";

xml += " <SignatureValue>" + X509Cert.??? + "</SignatureValue>";

xml += " <KeyInfo>";

xml += " <X509Data>";

xml += " <X509Certificate>" + X509Cert.??? + "</X509Certificate>";

xml += " </X509Data>";

xml += " </KeyInfo>";

xml += "</Ref>";

 

Queria saber X509Cert.??? qual propriedade eu uso para popular esse xml de assinatura. Se alguem souber, ajudaria e muito!

 

Obrigado e Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o código que se encontra nesse link http://nf-eletronica.com/blog/?p=47

 

Uso ele e nunca tive problema..

 

A unica coisa que modifiquei é que coloquei uma classe do assinador, e ao invés dele carregar o arquivo eu passo a string do arquivo que quero assinar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.