Averbação de CTE usando Porto Seguro alguem usa?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por andrelucass »

Ola a todos

Tenho um sistema de emissão de cte e mdfe e preciso saber se alguem fez a integração com a Porto seguro.


Atenciosamente
André Lucas Souza
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por andrelucass »

Vou precisar trabalhar com webservice, alguém poderia me ajudar ?


atenciosamente
André Lucas Souza
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por andrelucass »

Ola a todos

Gostaria de saber se alguem ja desenvolveu usando o web service da seguradora porto seguro

Atenciosamente
André Lucas Souza
andrelucass
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 25 Fev 2005 10:40

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por andrelucass »

Ola a todos

Vou posta parte do manual onde tem como fazer a login no webservice da porto seguro:
1. Endereço da API: http://www.averbeporto.com.br/websys/php/conn.php
2. Para login , enviar apenas os parâmetros:
{
"mod": "login",
"comp": 5,
"user": "USUARIO",
"pass": "SENHA",
["dump": [1,2]] // Opcional.
}
dump: Pode ser utilizado em qualquer requisição à API para auxiliar na depuração.
Exibe um “dump” de como estão chegando as variáveis enviadas ao sistema pelo
usuário.
dump=1: Adiciona a tag “dump” no json de resposta, após todo o processamento normal
da requisição.
dump=2: Exibe o json de resposta apenas com a tag “dump”, antes de qualquer processamento, e aborta o processamento normal.
3. Json de falha no login, usuário ou senha inválidos ou enviados de maneira incorreta:
{
"success": 1,
"logout": 1
}
Json de login bem sucedido:
{
"success": 1,
"C": {
"id": "00",
"userName": "USUARIO",
"name": "Usuario",
"email": " usuario@dominio.com ",
"portal_groups_id": "00",
"type": "U"
},
"S":[...]
}

e tem esse exemplo usando curl:
Login:
curl ' http://www.averbeporto.com.br/websys/php/conn.php ' --compressed -c cookie.txt -X POST -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' --data 'mod=login&comp=5&user=USUARIO&pass=SENHA' --compressed

bem com esse exemplo em curl e conseguir converte para postman usando uma extensão instalada no google chrome, e fiz a função em xharbour que esta ok

function LoginWS(cUsuario,cSenha)
local strXml

strXml := []
strXml += [mod=login]
strXml += [&comp=5]
strXml += [&user=]+cUsuario
strXml += [&pass=]+cSenha


cUrl := "http://www.averbeporto.com.br/websys/php/conn.php"
oServer:= CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", cUrl, .f. )
oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
oServer:Send(strXml) //
oServer:WaitForResponse( 10000 )
cCookieSessao := oServer:getResponseHeader("Set-Cookie") // pega o cookie da sessão
cCookieSessao := substr(cCookieSessao,1,at(';',cCookieSessao)-1)
cRetorno:= oServer:ResponseText
MemoWrit( "xml\retorno.xml", cRetorno )
return(cCookieSessao)

o que não conseguir fazer a a parte do envio, segue como esta no manual as duas opções

Upload:
curl ' http://www.averbeporto.com.br/websys/php/conn.php ' --compressed -X POST -H 'Cookie: portal[ses]=8c878b3ab2ba27bf7bc4d5d448b6489b' -H 'Content-Type: multipart/form-data' -F mod=Upload -F comp=5 -F
path=eguarda/php/ -F file=@ARQUIVO.xml

e a descrição no manual

Para upload , fazer o POST do cookie de sessão ( portal[ses] recebido no login),
do arquivo ( file ) e dos parâmetros:
{
"comp": 5,
"mod": "Upload",
"path": "eguarda/php/",
"recipient": "",
["v": N] // N = Versão da API. Parâmetro opcional.
}
Obs . Enviar o arquivo junto aos parâmetros, mesmo que codificado em base64, não irá funcionar. O arquivo deve ser enviado da mesma maneira que um formulário HTML o faria.


alguém poderia ajudar.

Atenciosamente
André Lucas Souza
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por Kapiaba »

Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por Alexandre Silva »

Mais alguem usa Porto Seguro para Averbar Cte ?
Essas postagens anteriores sao de 2018, imagino que ja resolveram.

Eu consegui o login o Cookie, mas nao consigo mandar o XML pelo sistema
Tem essas instrucoes ai, e o link do manual

No envio (Upload) envia-se somente os parâmetros descritos no manual https://docs.google.com/document/d/1da0 ... bx9cbgzw6t (pág. 5, item 4).
Em todas as requisições o parâmetro "dump" também pode ser utilizado para se fazer um debug (pág 4, item 2).
o usuário e senha só são necessários no login. Em todas as outras requisições o cookie de sessão deve ser utilizado no cabeçalho HTTP como forma de validação da sessão do usuário.
Caso necessário em sua linguagem, a senha de API talvez deva ser enviada codificada em Base64. o texto "portal[ses]" é o nome do cookie de sessão.
O arquivo XML deve ser enviado via método Post e na codificação exigida pelo tipo multipart/form-data, como descrito no manual (pág 5, item 4).

Código: Selecionar todos

function main()
#include 'inkey.ch'
local getlist:={},oServer,vcookie,cresposta,varqxml,vdados
local cUrl:="https://apis.averbeporto.com.br/php/conn.php"
varqxml:='xml_para_testar.xml'

vdados:="mod=Upload"
vdados+="&comp=5"
vdados+="&path=eguarda/php/"
vdados+="&file="+varqxml
  
oServer:=CreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", cUrl, .f. )

vcookie:='8109d471e302c3dc4d91d4f0e490d424' // ?

oServer:SetRequestHeader( "Cookie", vcookie ) // ?
oServer:SetRequestHeader( "Content-Type", "form-data" )
oServer:Send(vdados)

oServer:WaitForResponse( 400 )
cResposta := oserver:ResponseBody()
alert(cresposta)
memoWrit( "ret.txt")

Usando curl estou recebendo o retorno:

Código: Selecionar todos

curl 'https://api.averbeporto.com.br/php/conn.php' --compressed POST -H 'Cookie: 8109d471e302c3dc4d91d4f0e490d424' -H 'Content-Type: multipart/form-data' -F mod=Upload -F comp=5 -F path=eguarda/php/ -F file=3511111111111111111111111111111111111111-procCte

curl: (3) URL rejected: Port number was not a decimal number between 0 and 65535
curl: (6) Could not resolve host: POST
curl: (3) URL rejected: Bad hostname
curl: (6) Could not resolve host: multipart
No PostaMan esta ok
Anexos
envio_postman.jpg
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por Itamar M. Lins Jr. »

Olá!
Pouco entendo desses assuntos.
Não seria @arquivo.xml ?
No caso:
file=@3511111111111111111111111111111111111111-procCte.xml

Tá no manual assim.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Averbação de CTE usando Porto Seguro alguem usa?

Mensagem por Alexandre Silva »

Infelizmennte nao. ja tentei varias coisas
Pelo que vejo a questao é como mandar os dados, se fosse Json eu saberia,
Se fosse application/x-www-form-urlencoded tambem ok ,os campos vao sepadados com &
exemplo:
vdados= "mod=login&comp=5&user=usuario&pass=senha"

Mas no caso o formato é "form-data" ai nao sei como mandar os dados ou se falta algum header

Estou disposto a pagar se alguem me ajudar.
Pode entrar em contato mandando mensagem privada
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Responder