Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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.
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
>
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.
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
Veja aqui:
http://nf-eletronica.com/blog/?p=47
Exemplo de assinatura em C# do x509.
Abraço,
Giancarlo Braga.
>
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
>
>
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
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.
>
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.
nossa luis, por favor ahuahuuah usa o serialize, que trabalheira ficar concatenando ahuuahhuahu
procura sobre isso...
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
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