Jump to content

chamada diadoacbr

Assista tectoy.png

Envio Arquivo XML Ct-e para WS da Porto Seguro


Go to solution Solved by Marcos Gerene,
  • Este tópico foi criado há 675 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde.

          Estou tentando integrar um arquivo XML Ct-e com o Web Service da Porto Seguro (feito em PHP) usando RestSharp em C# e sempre retorna mensagem dizendo que não conseguiram abrir o XML  ou que arquivo está vazio.
         Estou usando o mesmo código que o Postman usa e não dá certo, parece que o problema está na forma que envio o arquivo, pois eles retornam erro como
se o tamanho do arquivo estivesse zero. Enviando pelo Postman dá certo. 

Queria ver se alguém já teve esse problema ao fazer a integração de arquivo XML CT-e para averbação por meio no Web Service JSON da Porto Seguro.

Abaixo está exemplo de código mínimo com as minhas tentativas e retorno recebido, um arquivo XML exemplo para envio, como também o link do manual da porto seguro.

Ja fiz várias tentativas de maneiras diferentes de incluir esse XML na request e sem sucesso. Espero que consigam me ajudar. Obrigado.

 

           ---------------------------------- CÓDIGO --------------------------------------
public static void testeIntegracaoRest()

    var link = "https://www.averbeporto.com.br/websys/php/conn.php";
    var client = new RestClient(link);
    var request = new RestRequest(Method.POST);

    var parametros = @"mod=login&comp=5&user=00234567000122&pass=0023";
    
    request.AddHeader("cache-control", "no-cache");
    request.AddHeader("content-type", "application/x-www-form-urlencoded");
    request.AddParameter("application/x-www-form-urlencoded", parametros, ParameterType.RequestBody);
   
    var login = client.Execute(request);

    if (login.StatusCode == HttpStatusCode.OK)
    {
        // continua
        var cookies = login.Cookies;

        var restResponseCookie = new RestResponseCookie();
        restResponseCookie = cookies[0];

        client = new RestClient("https://www.averbeporto.com.br/websys/php/conn.php");
        request = new RestRequest(Method.POST);
        request.AddCookie(restResponseCookie.Name, restResponseCookie.Value);

        request.AddHeader("content-type", "multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");

        byte[] array = File.ReadAllBytes("C:\\XML0702794600019004-05-20188001.xml");

        request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
            "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"comp\"\r\n\r\n5\r\n" +
            "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"mod\"\r\n\r\nUpload\r\n" +
            "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\neguarda/php/\r\n" +
            "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; " +
            "filename=\"" + array + "\r\nContent-Type: " + "application/xml\r\n\r\n\r\n" +
            "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"dump\"\r\n\r\n1\r\n",
            ParameterType.RequestBody);

        IRestResponse response = client.Execute(request);
    }
}

 

           ---------------------------------- RETORNO WS   --------------------------------------

 {"success":1,"S":{"P":0,"D":0,"R":0,"N":1},"prot":null,"error":{"msg":"Error opening XML","code":"03"},"dump":{"POST":{"comp":"5","mod":"Upload","path":"\/var\/www\/averbeporto.com.br\/web\/websys\/eguarda\/php\/","dump":"1","v":2,"ext":".php"},"COOKIE":{"portal":{"ses":"e002f119bb4d854b96ebd9c4c85b84f7"}},"FILES":{"file":{"name":"XML0702794600019004-05-20188001.xml","type":"application\/xml","tmp_name":"\/var\/www\/clients\/client0\/web124\/tmp\/phpqspsPj","error":0,"size":0}}}}

 

           ---------------------------------- LINK MANUAL  --------------------------------------

https://docs.google.com/document/d/1da005UzBF1Wzm8LmiB4JJnaXaLXtFKgl6S_rErMlXF8/edit

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

XML de envio exemplo.txt

Edited by LUCAS MARCELINO FERNANDES
Link to comment
Share on other sites

  • 11 months later...
  • 3 months later...

Bom dia pessoal, aproveitando que o tópico está aberto, para tirar uma dúvida. Entendo que servidor da Porto Seguro usa um método diferente dos demais. Eu pensei em adequar o ACBRANe para atender a porto seguro também.

Só que olhando os fontes, vi que terei que mexer em muita coisa. dai queria uma opinião.

O que acham melhor, criação de um novo componente, ou fazer a adequação ao ACBRANe mesmo?

 

Se algum moderador puder responder por favor.

Edited by Willian Hübner
Adc clausula moderador
Link to comment
Share on other sites

  • Consultores
1 hora atrás, Willian Hübner disse:

Bom dia pessoal, aproveitando que o tópico está aberto, para tirar uma dúvida. Entendo que servidor da Porto Seguro usa um método diferente dos demais. Eu pensei em adequar o ACBRANe para atender a porto seguro também.

Só que olhando os fontes, vi que terei que mexer em muita coisa. dai queria uma opinião.

O que acham melhor, criação de um novo componente, ou fazer a adequação ao ACBRANe mesmo?

 

Se algum moderador puder responder por favor.

dá uma procurada que acho que um colega postou uma unit que usou em algum lugar e eu mexi nela pra funcionar o envio

 mas o correto é manter em um único componente tudo se quer contribuir terá que modificar o mesmo a nível de entendimento entre todos os webservices para um único código

  • Like 1
Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

Link to comment
Share on other sites

  • Este tópico foi criado há 675 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.