none
Consumir webservice para consulta de lotes CF-E SAT RRS feed

  • Pergunta

  • Pessoal estou precisando consumir o WS da CF-E SAT para consultar cupons enviados pelo empresa mas estou tendo dificuldades em entender como consumir o metodo desse WS, não entendi muito bem se tenho que enviar um XML para o metodo ou o que pois em geral os WS que ja consumir eu conecto no mesmo via VS e faço uso dos seus metodos usando suas propriedade ou preenchendo parametros.

    Link com o metodo do WS a ser consumido
    http://www.fazenda.sp.gov.br/sat/downloads/Manual%20para%20Consultar%20lotes%20enviados%20via%20Webservice%20%28Homologa%C3%A7%C3%A3o%29%20v1%201.pdf

    Gostaria de saber se alguem ja consumiu esse WS estou usando a URL de homologação

    Junior


    quinta-feira, 3 de dezembro de 2015 23:17

Todas as Respostas

  • Amigo,

    É isso mesmo que você vai fazer, não tem segredo...adicione uma nova "Service Reference" no seu projeto apontando para a URL do manual e o VS vai criar os objetos para você, depois disso é só usar.

    Boa sorte!


    Não esqueça de marcar como útil uma resposta que te ajude.
    "A diversão é a alma do negócio"

    segunda-feira, 7 de dezembro de 2015 16:17
  • Olá.

    Na verdade, para voce consumir este web service do SAT, vc tem de formar um xml de entrada.

    Veja no documento PDF que tem o layout do mesmo.

    Ao invocar o serviço, voce tem de passar o xml de entrada. 

     4. Anexo I - XML de entrada da consulta

    O retorno será o xml de retorno (pagina 7) 

     5. Anexo II - XML de retorno da consulta

    Não é tão simples o consumo deste tipo de serviço. Se voce tiver dificuldades, podemos montar um exemplo. Este padrão de web service é o mesmo da NF-e (nota fiscal eletronica)

    espero que te ajude.

    segunda-feira, 7 de dezembro de 2015 17:37
  • Boa noite, amigo... estou com o mesmo problema, e não encontrei muita coisa na internet :S se pode fazer esse grande favor ajudaria demais! 

    Tentei usar aquele envelope que tem no pdf, e apartir daquilo fazer a requisição , porém quando mandava o xml igual do pdf dava erro em library um microsoft object2, podia nos ajudar?  

    OBS:Não entendo muito de SOAP , tentei realizar a requisição usando curl, nusoap e soapclient, nenhum resultado... todos caiam em erro de library...  

    quarta-feira, 9 de dezembro de 2015 01:23
  • Ok.

    vou montar um projetinho de exemplo e passo aqui para tentar ajudar.

    se puder aguardar, tento postar hoje ainda

    att.

    quarta-feira, 9 de dezembro de 2015 12:59
  • Muito Obrigado ! o máximo que cheguei até agora... é pegar esse xml que tem no Anexo I  e colocar numa variavel e executar o soap... porém está retornando um objeto em branco... :S
    quarta-feira, 9 de dezembro de 2015 13:27
  • Olá a todos.

    Eu fiz o projeto de teste, e fiz um teste básico, enviando um xml do jeito que vem na documentação.

    Ocorre uma exception:

     Server was unable to process request. ---> The type initializer for 'Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory' threw an exception. ---> Could not load file or assembly 'Microsoft.Practices.ObjectBuilder2, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

    O erro ocorre no servidor do SAP, parece que eles não colocaram uma dll do "Microsoft.Pratices" na pasta bin do web service.

    se desejar receber o projeto de teste me envie um e-mail,  jgeraldo@flag.com.br.

    vou enviar e-mail ao pessoal do SAT relatando o problema.

    por enquanto nada se pode fazer.

    quarta-feira, 9 de dezembro de 2015 15:59
  • Então o problema está no webservice deles?  muito obrigado pela ajuda!
    quarta-feira, 9 de dezembro de 2015 16:04
  • Ola desculpe a demora ... mas tivemos mudar o foco aqui, mas fiz varios testes tentando usar aquele envelope disponibilizado na documentação mas não da certo de jeito nenhum mesmo

    Junior

    quarta-feira, 23 de dezembro de 2015 12:34
  • Bom dia José, tudo bem?

    Recentemente eu também enviei um e-mail para o SAT e disseram ter encaminhado para o TI, porém não obtive mais retorno.

    Eles responderam sua mensagem? Nossa requisição também recebe o mesmo erro de .net, fizemos testes em PHP e com cURL

    quinta-feira, 28 de janeiro de 2016 10:55
  • Ola pessoal estou com o mesmo problema e estou utilizando o SOAPUI para verificar se o problema é meu projeto ou é do webservice do sefaz.

    E o problema é no sefaz e mandei um e-mail para o sefaz e tive a seguinte resposta.

    "Boa tarde,

    Está com erro mesmo.
    Abrimos um incidente para correção (REQ000000248300).
    Esperamos por uma solução até meados da próxima semana.

    Atenciosamente,
    Sefaz-SP"

    Isso foi no dia 15/01/2016 e até agora eles não arrumaram, enviei outro e-mail no dia 26/01/2016 e nada ainda.

    Se alguém quiser enviar e-mail para o sefaz tem a requisição acima que podem citar para ver se tem alguma novidade.

    segunda-feira, 1 de fevereiro de 2016 12:02
  • Bom dia a todos, alguém já conseguiu realizar o consumo do webservice para a consulta de cupons do CF-E SAT ?

    estou tendo problemas pois toda a consulta que eu tento fazer retorna Nothing. Já tentei várias estruturas de xml mas sem sucesso.

    Obrigado

    terça-feira, 1 de março de 2016 11:45
  • Bom dia a Todos,

    Estou tentando consumir o webservice, porém não estou tendo sucesso.

    Mesmo utilizando o envelope que eles disponibilizarão no manual.

    Ao adicionar os campos como nseriesat, dhinicial ... ele retorna a seguinte msg "HTTP/1.1 400 Bad Request" o que leva a crer que o problema está no layout. (Já testei diversos layout e mesmo assim problema permance).

    Alguém conseguiu algum retorno?

    Manual: http://www.fazenda.sp.gov.br/sat/duvidas_frequentes/Manual%20para%20Consultar%20lotes%20enviados%20via%20Webservice%20(Estadual)%20v1%201.pdf 

    quinta-feira, 3 de março de 2016 13:42
  • Boa tarde !

    Desculpe entrar na conversa mas estou coma mesma dificuldade em C# para consumir este web service você poderia montar um exemplo em C# para me ajudar ?

    Obrigado

    terça-feira, 10 de outubro de 2017 15:43
  • Boa tarde!

    Estou com problema até consigo conectar mas dar uma erro de Versão do arquivo XML não suportada segue meu projeto caso você tenha uma luz.

    Detalhe eu estou usando o xml entrada em um arquivo e carrego uma viável com o conteúdo deste arquivo pode ser que ai esteja o problema mas não conseguir ver.

    obs.:

    Neste código tem algumas linhas comentadas que são testes rsrs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Collections;
    using System.Xml;
    using System.IO;
    using System.Net;

    namespace Cupom_Sat
    {
       
        public partial class Form1 : Form
        {
           
            public Form1()
            {
                InitializeComponent();
            }
            WebServicesefaz.CfeConsultaLotesSoapClient ws = new WebServicesefaz.CfeConsultaLotesSoapClient();

            private void Form1_Load(object sender, EventArgs e)
            {

            }

            private void button1_Click(object sender, EventArgs e)
            {
               

               // XmlDocument oXML = new XmlDocument();
                //  int i;
               // string arquivoXML = txtXML.Text;


               // oXML.Load(arquivoXML);

                Callwebservice();
              
                
            }



       

        public  void Callwebservice()
        {
            var url = "https://wssathomolog.fazenda.sp.gov.br/CFeConsultarLotes/CfeConsultarLotes.asmx";
            var action = "https://wssathomolog.fazenda.sp.gov.br/CFeConsultarLotes/CfeConsultarLotes.asmx?op=CfeConsultarLotes";

            XmlDocument soapEnvelopeXML = CreateSoapEnvelope();

            HttpWebRequest webRequest = CreateWebRequest(url, action);

            InsertSoapEnvelopIntoWebRequest(soapEnvelopeXML, webRequest);

            IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

            asyncResult.AsyncWaitHandle.WaitOne();

         
                
                string soapResult;

            using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult))
            {

                using (StreamReader rd = new StreamReader(webResponse.GetResponseStream()))
                {

                    soapResult = rd.ReadToEnd();

                }
                    //Console.Write(soapResult);
                    MessageBox.Show(soapResult);



                   

                    // listBoxXML.Items.Add(soapResult);
                     txtXML.Text = soapResult;

                    using (StreamWriter writer = new StreamWriter("C:\\teste.xml", true))
                     {
                   writer.WriteLine(txtXML.Text);


                    }


                     XmlDocument oXML = new XmlDocument();
                     int i;
                     string arquivoXML = "C:\\teste.xml";

                     oXML.Load(arquivoXML);

                     XmlNodeList cupom = oXML.GetElementsByTagName("nCFe");
                    for (i = 0; i < cupom.Count; i++)
                     {
                      listBoxXML.Items.Add(cupom[i].InnerText);

                    }




                }

            }

        private static HttpWebRequest CreateWebRequest(string url, string action)
        {

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(@"https://wssathomolog.fazenda.sp.gov.br/CFeConsultarLotes/CfeConsultarLotes.asmx");
           // webRequest.Headers.Add("SOAPAction", action);
               // webRequest.ContentType = "application/soap+xml;charset=UTF-8;action=\"http://www.fazenda.sp.gov.br/sat/wsdl/CfeConsultaLotes";
           webRequest.ContentType = "text/xml;charset=\"UTF-8\"";
           //webRequest.ContentType = "application/soap+xml;charset=\"UTF - 8\"";
                //webRequest.Accept = "gzip,deflate";
                webRequest.Accept = "text/xml";
            webRequest.Method = "POST";
            webRequest.Timeout = 30 * 1000;

            return webRequest;
        }


        private static XmlDocument CreateSoapEnvelope()
        {

                string xmlsoap = "C:\\xmlsoap.xml";
            XmlDocument soapEnvelopeDocument = new XmlDocument();



                // soapEnvelopeDocument.LoadXml(xmlsoap);

               // xmlsoap.Substring(xmlsoap.IndexOf(Environment.NewLine));

                soapEnvelopeDocument.Load(xmlsoap);



                return soapEnvelopeDocument;
        }

        private static void InsertSoapEnvelopIntoWebRequest(XmlDocument soapEnvelopeXML,HttpWebRequest webRequest)
        {

            using (Stream stream = webRequest.GetRequestStream())
            {

                soapEnvelopeXML.Save(stream);

                    
                }

        }



        }

    }

        

    terça-feira, 17 de outubro de 2017 19:55