Clipper On Line • Ver Tópico - NFSe - IPM _ Pinhais/PR

NFSe - IPM _ Pinhais/PR

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

Moderador: Moderadores

 

NFSe - IPM _ Pinhais/PR

Mensagempor toya » 29 Nov 2021 14:42

Preciso de uma ajuda na transcrição HTTP (Postman) para o Harbour:
Ambiente Homologação

POST /atende.php?pg=rest&service=WNERestServiceNFSe&cidade=migra_pinhais HTTP/1.1
Host: treinamento.atende.net
Authorization: Basic MDkyNDczNDMwMDAxMjA6SXBtQDIwMjE=
Cookie: PHPSESSID=7pf56uromi3p4vnrj64mi264a1; cidade=migra_pinhais
Content-Length: 222
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="XML"; filename="/E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml"
Content-Type: text/xml
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW


cFile := "E:\JOBs\NFSe\xml_teste\S_NS9_000000001-nfSe.xml"

doc := CreateObject( "MSXML2.DOMDocument" )
oHTTP := CreateObject( "MSXML2.XMLHTTP" )   
oHTTP:Open( "POST" ,  cUrl, .f. )
oHTTP:SetRequestHeader( "Content-Type"   , "text/xml" )   
oHTTP:SetRequestHeader( "Authorization"  , "Basic " + cBasic )
oHTTP:SetRequestHeader( "Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" ) 
oHTTP:SetRequestHeader( "Content-Disposition", 'form-data; name="XML"; filename=' + cFile )
http:Send()


Estou obtendo o seguinte retorno:
<?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
   <mensagem>
      <codigo>9999 - Arquivo XML da Nota Fiscal de Servi?Eletr?a n?enviado!</codigo>
   </mensagem>
</retorno>

Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
toya
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 26 Jul 2004 16:51
Cidade/Estado: Campo Grande/MS - Brasil
Curtiu: 4 vezes
Mens.Curtidas: 11 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor frazato » 29 Nov 2021 18:58

Tarde!
Utilizo assim, e funciona para json, talvez ajude em alguma coisa!

Frazato


//------------------------------------------------------------------------------------
Static Function CarregaDMOfertas(cArqJson)
Local i
*Local Url := 'http://api.appsoumais.dmcardweb.com.br/api/OfertaAutomatica/CreatOferta'
*Local cToken := "e53064akddkdçaslfklçlçafsakdflçsadfkfdk07"
Local Url := Lerparam('DMOFERTA_URL_CRIAR_CIA')
Local cToken := Lerparam('DMOFERTA_TOKEN')
Local cRetorno :=''

 

    CENTRA(24,"Aguarde...Publicando ofertas no APP da DMOFERTAS!")

*   xmldoc = CREATEOBJECT("MSXML2.SERVERXMLHTTP")

                 
    xmldoc = CREATEOBJECT("MSXML2.ServerXMLHTTP.5.0")
    xmldoc:setTimeouts(1000*60, 1000*60, 0, 0)
    xmldoc:open("POST", url, .f.)
    xmldoc:SetRequestHeader( "Content-Type", "application/json;charset=utf-8"  )
    xmldoc:SetRequestHeader( "token" , cToKen )
    xmldoc:SetRequestHeader( "Connection", "Keep-Alive"  )

   *xmldoc:setTimeouts(1000*60, 1000*60, 0, 0)

   //-- Montando o Xml pra consulta  exemplo do conteudo da matriz a popular o json
  * cListaItens := {}

          //codigo  EAN        3-descricao       4-estq 5-norma 6-oferta 7-dmoferta      
*   Aadd(cListaItens,{'50136','7896185310576','CREME LEITE SHEFA TP 200G',100   ,2.99   ,2.79,2.49 })
*   Aadd(cListaItens,{'06776','7894900031515','REFRIGERANTE FANTA 2L'    ,100   ,5.49   ,4.99,4.89 })
*   Aadd(cListaItens,{'58435','7891150064317','DETERGENTE PO OMO 800GR'  ,100   ,9.49   ,8.78,8.49 })
*   Aadd(cListaItens,{'39655','8712000025649','BARRIL HEINEKEN 5L'  ,100   ,84.90  ,79.90,78.90 })

   Texto := cArqJson 
   lErroEnvio := .f.
   Try
   xmldoc:send(Texto)
   
   Catch oError
       CRLF := ''
       cErrorTmp :="Error: "  + Transform(oError:GenCode, nil) + CRLF +;
                   "SubC: "   + Transform(oError:SubCode, nil) + CRLF +;
                   "OSCode: "  + Transform(oError:OsCode,  nil) + CRLF +;
                   "SubSystem: " + Transform(oError:SubSystem, nil) + CRLF +;
                   "Mensagem: " + oError:Description
   
       Alerta("Erro ao chamar metodo SEND de HttpRequest (Registro envio)"+chr(10)+cErrorTmp )
       lErroEnvio := .t.
   End

   If lErroEnvio == .t.
      Return cErrorTmp
   Endif

   DO WHILE xmldoc:readyState <> 4
      MILLISEC(1000)
   ENDDO

   Linha :=xmldoc:responseText
   Linha2:=xmldoc:ResponseBody()

   MemoWrit(mTemporal+'revisao2.txt',Linha2)
   MemoWrit(mTemporal+'revisao1.txt',Linha )

  *Alerta(Linha)
  *Alerta(Linha2)

   cRetornoDM :=["code":1}]
   cRetorno   := cRetornoDM
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 219
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor toya » 30 Nov 2021 08:54

Frazato...
Mui grato...
Mas no caso, ele está autenticando.
Apenas não está anexando/enviando o arquivo...
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
toya
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 26 Jul 2004 16:51
Cidade/Estado: Campo Grande/MS - Brasil
Curtiu: 4 vezes
Mens.Curtidas: 11 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor Jairo Maia » 30 Nov 2021 09:10

Olá Pessoal,

toya escreveu:Apenas não está anexando/enviando o arquivo...
Não entendo nada do que vocês estão discutindo aqui, mas com base nessa declaração vou fazer uma pergunta:

Isso está correto?:
filename="/E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml"
É essa barra no início do caminho que questiono.

E aqui:
cFile := "E:\JOBs\NFSe\xml_teste\S_NS9_000000001-nfSe.xml"
Aqui está no formato Windows, e a anterior no formato Linux.

Desculpem se a pergunta foi idiota.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor toya » 30 Nov 2021 10:42

Jairo, já testei nas duas formas...
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
toya
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 26 Jul 2004 16:51
Cidade/Estado: Campo Grande/MS - Brasil
Curtiu: 4 vezes
Mens.Curtidas: 11 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor Kapiaba » 30 Nov 2021 12:31

Também não estou te entendendo, seja mais específico. E para pegar esse diretório imenso, você está usando o:

   Lfn2Sfn(cDir)


??

Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor rochinha » 05 Dez 2021 17:59

Amiguinhos,

Faltou?
   oHTTP:Send( memoread( "E:/JOBs/NFSe/xml_teste/S_NS9_000000001-nfSe.xml" ) )


Notei que no código você cria o objeto na variável oHTTP
   oHTTP := CreateObject( "MSXML2.XMLHTTP" )   


Mas no seu código está http:
   http:Send()


Se não deu erro nesta linha é porque a variável http está publicizada no geral.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

NFSe - IPM _ Pinhais/PR

Mensagempor toya » 14 Jan 2022 13:35

Aos interessados...
Como consegui resolver...
Mui grato aos colegas...

   cBase64 := alltrim( hDados["login"] ) + ":" + alltrim( hDados["senha"] )
   cBasic := alltrim( HB_Base64Encode( cBase64, len( cBase64 ) ) )
   cBasic := strtran( cBasic, CRLF, "" )
   cXmlFile := memoread(cFile)
   
   oHTTP := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
   oHttp:Open("POST", cUrl, .f. )
   oHTTP:SetRequestHeader( "Authorization", "Basic " + cBasic )
   oHTTP:SetRequestHeader( "Host", cHost )
   oHTTP:SetRequestHeader( "Content-Type", "multipart/form-data; boundary=" + cBoundary )
   cTexto := '--'
   cTexto += cBoundary
   cTexto += CRLF
   cTexto += 'Content-Disposition: form-data; name="XML"; filename="'+cFile+'"'
   cTexto += CRLF
   cTexto += 'Content-Type: application/xml'
   cTexto += CRLF
   cTexto += CRLF
   cTexto += cXmlFile
   cTexto += CRLF
   cTexto += CRLF
   cTexto += '--'
   cTexto += cBoundary
   cTexto += '--'
   oHttp:Send( cTexto )
   cRet  := oHttp:ResponseText

Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
toya
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 147
Data de registro: 26 Jul 2004 16:51
Cidade/Estado: Campo Grande/MS - Brasil
Curtiu: 4 vezes
Mens.Curtidas: 11 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro