Ir para conteúdo
  • Cadastre-se

dev botao

Envio Arquivo XML Ct-e para WS da Porto Seguro


Ver Solução Respondido por Marcos Gerene,
  • Este tópico foi criado há 1309 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

Editado por LUCAS MARCELINO FERNANDES
Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...
  • 3 meses depois ...

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.

Editado por Willian Hübner
Adc clausula moderador
Link para o comentário
Compartilhar em outros sites

  • Moderadores
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

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.