fladimir Posted August 2, 2018 Report Share Posted August 2, 2018 sim ele não vai hDados := hb_hash() // Reseto a variavel hDados["mod"] := 'Upload' hDados["comp"] := '5' hDados["path"] := 'eguarda/php/' hDados["recipient"] := '' hDados["file"] := mArqXml && 'ConteudodoarquivoXML' // aki q não tenho certeza tem q testar, mas acredito q seja carregar esse campo com o conteúdo do XML // Como estou logado e o Cookie dentro o oHTTP passo o hDados novo IF !oHTTP:post( hDados ) /// ele encerra aqui RETURN .F. ENDIF cRet:= oHTTP:ReadAll() // pego o retorno hb_jsonDecode(cRet, @hJson) // transformo em JSON ja tentei com o conteuido do xml e com p caminho os dois sai na opcao acima Exato ta parando ai... tipo falta pouca coisa mas o trem não vai... q coisa hein... eles passaram um login e senha de testes mas não ajuda muito pq o problema é pq depois de logado e tudo ok não aceitar o envio. Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 2, 2018 Report Share Posted August 2, 2018 bom dia fiz desta forma e ele me retorno o seguinte function enviaWS(mUsuario,mSenha,mArqxml) local strXml, ws, oRs, olServer cUrl := "http://www.averbeporto.com.br/websys/php/conn.php?"+; "mod=Upload"+; "&comp=5"+; "&path=eguarda/php/"+; "&file=@"+mArqxml+"" msginfo(cURL) oServer:= CreateObject( "MSXML2.ServerXMLHTTP") oServer:Open( "POST", cUrl, .F. ) oServer:SetRequestHeader( "Cookie", mCookie ) oServer:SetRequestHeader( "Content-Type", "multipart/form-data" ) oServer:Send() // oServer:WaitForResponse( 10000 ) cRetorno:= oServer:ResponseText MemoWrit( "xml\retornoenv.xml", cRetorno ) msginfo(cretorno,"envio") return(cRetorno) {"success":1,"S":{"P":0,"D":0,"R":0,"N":0},"error":{"msg":"No XML or ZIP file found"}} dizendo que não é um arquivo xml. Isso pq vc mandou @arquivo, pelo q li no manual seria somente ali o conteúdo sem o @ não? Pq vc manda o usuário e senha pra essa rotina sendo q não usa essas variáveis na rotina? Poderia colocar a rotina anterior em q vc pega o mCookie na conexão? Na minha rotina não esta dando certo pq não sei mudar o oHTTP TipClientHTTP pra "multipart/form-data" e passar isso. Na sua parece q já ta mais proxima de acertar. Se puder compartilhar conosco como vc fez dessa forma a conexão e pegar o Cookie pq essa do enviaWS acredito q seja só ajudar ali a parte do XML Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 2, 2018 Author Report Share Posted August 2, 2018 function LoginWS(mUsuario,mSenha,mArqxml) local strXml, ws, oRs strXml := [] strXml += [mod=login] strXml += [&comp=5] strXml += [&user=]+mUsuario strXml += [&pass=]+mSenha 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) mCookie := cCookieSessao cRetorno:= oServer:ResponseText MemoWrit( "xml\retorno.xml", cRetorno ) return(cCookieSessao) essa aqui ta funcionando e retornando o cookie Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 5, 2018 Report Share Posted August 5, 2018 É aki tb retorna "No XML or ZIP file found" Vou ver com o suporte o q falam, qualquer novidade posto novamente. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 8, 2018 Author Report Share Posted August 8, 2018 Ok, vou tem de outra forma quem conseguir a solução posta aqui. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 8, 2018 Author Report Share Posted August 8, 2018 vou zipar o xml e tentar enviar desta forma Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 10, 2018 Author Report Share Posted August 10, 2018 abri um chamado na porto seguro, vou aguardar o retorno. Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 10, 2018 Report Share Posted August 10, 2018 Eu tb abri um chamado, ligaram pra mim, e disseram: "O Sr. não esta enviando o XML"... Eu disse... é justamente esse o motivo do chamado eu mando o XML e o retorno é q não foi o XML, preciso de auxilio nisso... ai respondem "Ahm... e como o Sr. ta fazendo?"... respondo: Igual no manual passando a URL e o XML vai na URL, tentei mandar tanto conteúdo do XML qto o caminho do arquivo XML e não vai... Fiz o seguinte fiz um vídeo mostrando um código de exemplo q tem essa rotina do LoginWS e do EnviaWS e coloquei o DEBUG pra mostrar em tempo de execução as variáveis e seus conteúdos... isso ontem, até agora não responderam, acredito q o programador deles deva estar analisando... O q conseguir primeiro posta aki... Kkkk Abraço. Quote Link to comment Share on other sites More sharing options...
wanderso Posted August 13, 2018 Report Share Posted August 13, 2018 Pessoal qual é a dúvida? Se for para porto eu desenvolvi e está averbando perfeitamente. kapiaba 1 Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 13, 2018 Report Share Posted August 13, 2018 Boa tarde, a dúvida esta quando tentamos enviar o XML via conteúdo ou caminho de ambas as formas o retorno é NO XML or ZIP FILE como se não estivéssemos mandando nada, ou seja, provavelmente esta na forma q estamos enviando o xml. Quote Link to comment Share on other sites More sharing options...
wanderso Posted August 14, 2018 Report Share Posted August 14, 2018 Então, segue minha rotina: TRY oUrl = TUrl():New( 'http://www.averbeporto.com.br/websys/php/conn.php' ) CATCH CurSorArrow() MsgInfo('Erro ao criar a conexão','Erro') RETURN(.F.) END IF !EMPTY( oUrl ) oCli = TIPClientHttp():New( oUrl ) IF !EMPTY( oCli ) oCli:nConnTimeout = -1 IF oCli:Open() hQuery["mod"] := "login" hQuery["comp"] := "5" hQuery["user"] := "XXXXX" hQuery["pass"] := "xxxx" oCli:cUserAgent:='Mozilla/3.0 (compatible; Indy Library)' IF !oCli:PostMultiPart(hQuery) CurSorArrow() MsgInfo(oCli:lastErrorMessage,'Erro') ELSE cNFSeResp :=oCli:ReadAll() RespC := oCli:GetCookies() // Captura cookie ENDIF ENDIF ENDIF ENDIF If Alltrim(cNFSeResp) == '{"success":1,"logout":1}' CurSorArrow() oCli:Close() MsgBeep() MsgAlert("Não foi possível conectar ao site de averbação!","Atenção") Return .f. Endif // Faz o upload do xml para averbação oCli:Close() oCli = TIPClientHttp():New( oUrl ) IF !EMPTY( oCli ) oCli:nConnTimeout = -1 IF oCli:Open() ocli:SetCookie( respc ) hQuery["comp"] := "5" hQuery["mod"] := "Upload" hQuery["path"] := "eguarda/php/" hQuery["recipient"] := "" EmiCte := Dtoc(oArqCto:DTEMIS) LocXml := Alltrim(oConfCte:P_AUTORI)+Substr(EmiCte,4,2)+Substr(EmiCte,7,4)+"\"+Alltrim(oArqCto:CHAVESEFAZ)+; "-ProcCTe.xml" If ! File(LocXml) CurSorArrow() MsgBeep() MsgAlert("Xml do cte não localizado!","Atenção") oCli:Close() Return .f. Endif ArqAtach := LocXml oCli:cUserAgent:='Mozilla/3.0 (compatible; Indy Library)' oCli:Attach("file",ArqAtach) IF !oCli:PostMultiPart(hQuery) CurSorArrow() MsgInfo(oCli:lastErrorMessage,'Erro') ELSE Respchave:=oCli:ReadAll() ENDIF ENDIF ENDIF If Substr(Alltrim(Respchave),1,12) == '{"success":0' CurSorArrow() oCli:Close() MsgBeep() MsgAlert("Não foi possível fazer o upload do arquivo xml!","Atenção") MsgAlert(Repchave) Return .f. Endif // Busca número do protocolo RespPosi := At("prot",Respchave) RespPosi := Respposi + 7 RespProt := Substr(Respchave,RespPosi,40) oCli:Close() CurSorArrow() Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 16, 2018 Author Report Share Posted August 16, 2018 Beleza pura, nos primeiros teste funcionou! Valeu vou testar mais um pouco. Quote Link to comment Share on other sites More sharing options...
devairlp Posted August 16, 2018 Report Share Posted August 16, 2018 Funcionou enviando Xml individual. Ao enviar varios Xml zipado, da como arquivo diferente de Xml ou Zip. Alguem ta conseguindo enviar varios zipado? Se sim, como tem feito. Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 17, 2018 Report Share Posted August 17, 2018 Peguei o código do colega e troquei apenas a linha do EmiCte := Dtoc(oArqCto:DTEMIS) LocXml := Alltrim(oConfCte:P_AUTORI)+Substr(EmiCte,4,2)+Substr(EmiCte,7,4)+"\"+Alltrim(oArqCto:CHAVESEFAZ)+"-ProcCTe.xml" Por: LocXml := "d:\ChavedoarquivoCTe.xml" e no usuario e senha usei o de homologação ai executando com o debug para na linha onde o retorno é: Alguém sabe auxiliar no q estou errando? Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted August 17, 2018 Author Report Share Posted August 17, 2018 segue o meu codigo que consegui fazer funcionar function envianovo(mUsuario,mSenha,mArqxml) LOCAL hquery TRY oUrl = TUrl():New( 'http://www.averbeporto.com.br/websys/php/conn.php' ) CATCH CurSorArrow() MsgInfo('Erro ao criar a conexão','Erro') RETURN(.F.) END IF !EMPTY( oUrl ) oCli = TIPClientHttp():New( oUrl ) IF !EMPTY( oCli ) oCli:nConnTimeout = -1 IF oCli:Open() hQuery := hb_hash() // Reseto a variavel hQuery["mod"] := "login" hQuery["comp"] := "5" hQuery["user"] := mUsuario && "XXXXX" hQuery["pass"] := mSenha && "xxxx" oCli:cUserAgent:='Mozilla/3.0 (compatible; Indy Library)' IF !oCli:PostMultiPart(hQuery) CurSorArrow() MsgInfo(oCli:lastErrorMessage,'Erro') ELSE cNFSeResp :=oCli:ReadAll() RespC := oCli:GetCookies() // Captura cookie ENDIF ENDIF ENDIF ENDIF If Alltrim(cNFSeResp) == '{"success":1,"logout":1}' CurSorArrow() oCli:Close() MsgBeep() MsgAlert("Não foi possível conectar ao site de averbação!","Atenção") Return("") Endif //" Faz o upload do xml para averbação oCli:Close() oCli = TIPClientHttp():New( oUrl ) IF !EMPTY( oCli ) oCli:nConnTimeout = -1 IF oCli:Open() ocli:SetCookie( respc ) hQuery := hb_hash() // Reseto a variavel hQuery["comp"] := "5" hQuery["mod"] := "Upload" hQuery["path"] := "eguarda/php/" hQuery["recipient"] := "" LocXml := mArqXML If !File(LocXml) CurSorArrow() MsgBeep() MsgAlert("Xml do cte não localizado!","Atenção") oCli:Close() Return("") Endif ArqAtach := LocXml oCli:cUserAgent:='Mozilla/3.0 (compatible; Indy Library)' oCli:Attach("file",ArqAtach) IF !oCli:PostMultiPart(hQuery) CurSorArrow() MsgInfo(oCli:lastErrorMessage,'Erro') ELSE Respchave:=oCli:ReadAll() ENDIF ENDIF ENDIF If Substr(Alltrim(Respchave),1,12) == '{"success":0' CurSorArrow() oCli:Close() MsgBeep() MsgAlert("Não foi possível fazer o upload do arquivo xml!","Atenção") MsgAlert(Repchave) Return("") Endif // Busca número do protocolo RespPosi := At("prot",Respchave) RespPosi := Respposi + 7 RespProt := Substr(Respchave,RespPosi,40) oCli:Close() CurSorArrow() return(RespProt) kapiaba 1 Quote Link to comment Share on other sites More sharing options...
fladimir Posted August 17, 2018 Report Share Posted August 17, 2018 Vlw Galera, aki permanece igual mesmo erro, percebi q o EDUTEK reseta o Hash antes, fiz isso mas o erro permaneceu. Abri um chamado na Porto Seguro pra ver o q falam. Como a rotina funcionou em ambos colegas é algo aki, qdo elucidar posto a solução. Abraço. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 12, 2018 Report Share Posted September 12, 2018 Edutek, podeis entrar em contato com este usuário, porfa: Bom dia! Muito obrigado pelo retorno. Pois é, não consigo contato com esse usuário (EDUTEK). Não consigo fazer meu cadastro lá no site. Teria como você enviar meu e-mail e pedi para ele mandar uma mensagem? Estamos precisando muito Obg desde já! Abs, "Erich Galvão" erich.galvao@gmail.com Obg. abs. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted September 13, 2018 Author Report Share Posted September 13, 2018 Que posso ajudar ? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 13, 2018 Report Share Posted September 13, 2018 Que posso ajudar ? Sobre MDFE - AVERBAÇÃO SEGURO Qual o seu email Edutek? Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted September 13, 2018 Author Report Share Posted September 13, 2018 Edutek, podeis entrar em contato com este usuário, porfa: Bom dia! Muito obrigado pelo retorno. Pois é, não consigo contato com esse usuário (EDUTEK). Não consigo fazer meu cadastro lá no site. Teria como você enviar meu e-mail e pedi para ele mandar uma mensagem? Estamos precisando muito Obg desde já! Abs, "Erich Galvão" erich.galvao@gmail.com Obg. abs. meu email é edutek68@uol.com.br kapiaba 1 Quote Link to comment Share on other sites More sharing options...
devairlp Posted July 12, 2023 Report Share Posted July 12, 2023 Alguém já fez a nova averbação MDFe da porto seguro, pois pela TIPClientHttp, não aceita https ( conexão segura) e a Porto mudou o protocolo. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 13, 2023 Report Share Posted July 13, 2023 (edited) Não mudou para: https://wws.averbeporto.com.br/websys/?comp=5 ? Regards, saludos. Edited July 13, 2023 by kapiaba errei Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 13, 2023 Report Share Posted July 13, 2023 #include "FiveWin.ch" STATIC oWnd FUNCTION Main() LOCAL cSite cSite := ( "https://wws.averbeporto.com.br/websys/?comp=5" ) //-> Invisibilizo a Janela DEFINE WINDOW oWnd FROM -10, -10 TO -5, -5 ACTIVATE WINDOW oWnd ; ON INIT( ShellExecute(GetActiveWindow(),"OPEN",'"'+cSite+'"'), oWnd:End() ) RETURN NIL Regards, saludos. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 13, 2023 Report Share Posted July 13, 2023 Artiaga, veja a "Aba" Ajuda, tem as novas instruções do Sistema de Averbação de Seguros da Porto Seguro. Regards, saludos. Quote Link to comment Share on other sites More sharing options...
devairlp Posted July 14, 2023 Report Share Posted July 14, 2023 15 horas atrás, kapiaba disse: #include "FiveWin.ch" STATIC oWnd FUNCTION Main() LOCAL cSite cSite := ( "https://wws.averbeporto.com.br/websys/?comp=5" ) //-> Invisibilizo a Janela DEFINE WINDOW oWnd FROM -10, -10 TO -5, -5 ACTIVATE WINDOW oWnd ; ON INIT( ShellExecute(GetActiveWindow(),"OPEN",'"'+cSite+'"'), oWnd:End() ) RETURN NIL Regards, saludos. Desta forma funciona manualmente, vc transmite o arquivo e tem que lançar o nro da averbação manualmente em cada CTe, ou baixar um aquivo txt csv, e ler este arquivo. Mais quero continuar a fazer por API. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.