Ir para conteúdo

Arquivado

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

thalesba

Retorno de Autorização Nfe 3.10 (MG) C#

Recommended Posts

Estou com uma dificuldade na hora do retorno da autorização da NF-e utilizando C# (Visual Studio 2008). Está retornando um objeto vazio.


Para ser feita a chamada do WS estou utilizando o seguinte código:



public string NFeAutorizacao(string XmlEnvio, string VersaoSchema, short Ambiente, short CodIbgeUfEmi, string SiglaWS, string PathCertificado, string SenhaCertificado, ref string MsgErr, ref short FlagErr)
{
try
{
// Converte dados do xml para XmlNode
XmlDocument oXmlDoc = new XmlDocument();
oXmlDoc.LoadXml(XmlEnvio);
XmlNode oNode = oXmlDoc.DocumentElement;
// Carrega o certificado
X509Certificate certificado = new X509Certificate();
certificado = SelecionarCertificado(PathCertificado, SenhaCertificado, ref MsgErr, ref FlagErr);

// Se conseguiu localizar o certificado digital
if (FlagErr == 0)
{
// Identifica o WebService a ser utilizado: "SEFAZ Estadual", "Ambiente Nacional" ou "SCAN"
switch (SiglaWS)
{
case "SEFAZEST": // WebService da SEFAZ Estadual ou Virtual
// Identifica o ambiente a ser utilizado
switch (Ambiente)
{
//Ambiente de Homologação
#region
case 2: // HOMOLOGAÇÃO
// Identifica o código IBGE do Estado
switch (CodIbgeUfEmi)
{
case 31: // MG
// Declara as variáveis do WebService

MG.NfeAutorizacao.Homologacao.NfeAutorizacao wsMG = new BibliotecaNFe.MG.NfeAutorizacao.Homologacao.NfeAutorizacao();
MG.NfeAutorizacao.Homologacao.nfeCabecMsg nfeCabecMsgMG = new BibliotecaNFe.MG.NfeAutorizacao.Homologacao.nfeCabecMsg();
MG.NfeAutorizacao.Homologacao.nfeDadosMsg nfeDadosMsgMG = new BibliotecaNFe.MG.NfeAutorizacao.Homologacao.nfeDadosMsg();

// Coloca os valores no cabeçalho

nfeCabecMsgMG.cUF = CodIbgeUfEmi.ToString().Trim();
nfeCabecMsgMG.versaoDados = VersaoSchema;
wsMG.nfeCabecMsgValue = nfeCabecMsgMG;
nfeDadosMsgMG.Any = new XmlNode[] {oXmlDoc};
nfeDadosMsgMG.Any[0] = oNode;

// Coloca o certificado
wsMG.ClientCertificates.Add(certificado);
wsMG.Timeout = 120000;

// Comunica com o WebService
string obj = nfeDadosMsgMG.Any[0].OuterXml;
Console.WriteLine(obj);

string retorno = wsMG.NfeAutorizacaoLote(nfeDadosMsgMG).ToString();
Console.WriteLine(retorno);


return wsMG.NfeAutorizacaoLote(nfeDadosMsgMG).ToString();
default: // Código não foi informado ou é inválido
FlagErr = 1;
MsgErr = "Erro: Código da UF informada " + CodIbgeUfEmi.ToString().Trim() + ". Código inválido ou SEFAZ não possui WebService próprio.";
return "";
} // switch (CodIbgeUfEmi)

default: // Ambiente incorreto (Diferente de 1 e 2)
FlagErr = 1;
MsgErr = "Erro: Ambiente informado: " + Ambiente.ToString().Trim() + ". Informe um código de ambiente válido.";
return "";
} // switch (Ambiente)
#endregion

default: // WebService não informadou ou parâmetro incorreto
FlagErr = 1;
MsgErr = "Erro: Sigla do WebService a ser utilizado " + SiglaWS.Trim() + ". Informe um código válido.";
return "";
} // switch (SiglaWS)
}
else
{
return ""; // Retorno em branco pois houve erro
} // if (FlagErr == 0)
}
catch (Exception e)
{
FlagErr = 1;
MsgErr = "Erro: Não foi possível enviar o lote de NF-e à SEFAZ. " + e.Message + " - " + e.StackTrace.ToString();//"Erro: Não foi possível enviar o lote de NF-e à SEFAZ. " + e.Message + "\n" + e.InnerException.ToString() + "\n" + e.StackTrace.ToString();
return "";
}
}

Beleza... É realizada a comunicação com a SeFaz e autorizada a nota (se você consultar a chave de acesso, ela estará lá normalmente) Porém dentro do método do WS, quando é realizado o "Invoke", é retornado um objeto vazio.


No webservice, é nessa linha:



object[] results = this.Invoke("NfeAutorizacaoLote", new object[] {
nfeDadosMsg});

o Results[] retorna um objeto sem valores...


Estou com essa dificuldade pois necessitava do XML de retorno para atualizar a NF-e em meu sistema.


Gostaria de saber o que estou fazendo errado nessa chamada ou na instanciação do retorno?


Para auxilio, estou disponibilizando o vídeo da operação com breakpoints:


https://www.dropbox.com/s/xyj4l82k7djhxbq/Dificuldade%20SeFaz%20MG%20Retorno.camrec?dl=0


E estou disponibilizando a parte do código demonstrado:


https://www.dropbox.com/s/d2ndqa4nos4p72z/BibliotecaNF310.7z?dl=0


Agradeço desde já!


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.