Jump to content
Fivewin Brasil

ref api


syspel

Recommended Posts

ola pessoal preciso de mandar estas informacao para um api

tenho esse exemplo abaixo mais as informacao nao chega la na pagina

alguem pode ajudar aonde estou errando neste script o api e post

obrigado pela ajuda 

 

 

#Include "Fivewin.ch"
//--------------------------------

function main()
local pCpf     := "99999999999" 
local pCnpj    := "08124858000100"
local pNome    := "joao carlos" 
local pArquivo := ".\func0001.JPG"
local cRetorno := ""
cRetorno := fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo )
SysRefresh()
 MsgInfo( cRetorno )
MemoWrit(".\carlos.txt", cRetorno )

return .t.
*------------------------------------------------------------------------------*


*------------------------------------------------------------------------------*
* Analista : maniel
*
* Objetivo : Enviar Arquivo 
*------------------------------------------------------------------------------*
Function fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo )
Local oHttp , cTexto :=""
Try
   oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
   oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End

oHttp:Open( 'POST', "https://api-fpm.syspel.com.br/api/recibos/", .F. )

cTexto := '{ '
cTexto += '"id_client": '  +pCpf
cTexto += '"id_company": ' +pCnpj
cTexto += '"Id_employee": '+pNome
cTexto += '"File": '       +pArquivo 
cTexto += ' }' 

try
   oHttp:Send( cTexto )
catch
   MsgInfo( "Erro no processo post:" + oHttp:lastErrorMessage())
end

Return oHttp:ResponseBody
*------------------------------------------------------------------------------*

carlos Syspel

bcc 730 fwh2111 dbfs cloud

 

 

 

 

 

 

Link to comment
Share on other sites

#include "Fivewin.ch"

FUNCTION Main()

   LOCAL pCpf     := "99999999999"
   LOCAL pCnpj    := "08124858000100"
   LOCAL pNome    := "joao carlos"
   LOCAL pArquivo := ".\func0001.JPG"
   // LOCAL pArquivo := ".\LOGO.jpg"
   LOCAL cRetorno := ""

   cRetorno := fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo )

   MsgInfo( cRetorno )

   MemoWrit( ".\carlos.txt", cRetorno )

RETURN NIL // .T.

// ------------------------------------------------------------------------------*
// Analista : maniel
//
// Objetivo : Enviar Arquivo
// ------------------------------------------------------------------------------*
FUNCTION fEnviaArquivo( pCpf, pCnpj, pNome, pArquivo )

   LOCAL oHttp, cTexto := ""

   #IFDEF __XHARBOUR__  // xHarbour

      Try

          oHttp:= CreateObject( "MSXML2.ServerXMLHTTP.6.0" )

      Catch

         MsgInfo('Erro na Criação do Serviço!', 'xHarbour: Atenção!')

         Return Nil
      End

   #ELSE

      Try

         oHttp:= win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0")

      Catch

         MsgInfo('Erro na Criação do Serviço!', 'Harbour: Atenção!')

         Return Nil
      End

   #ENDIF

   TRY

      oHttp:Open( 'POST', "https://api-fpm.syspel.com.br/api/recibos/", .F. )

      cTexto := '{ '
      cTexto += '"id_client": '  + pCpf
      cTexto += '"id_company": ' + pCnpj
      cTexto += '"Id_employee": ' + pNome
      cTexto += '"File": '       + pArquivo
      cTexto += ' }'

      oHttp:Send( cTexto )

   CATCH

      MsgInfo( "Erro no processo post:" + oHttp:lastErrorMessage() )

   END

RETURN( oHttp:ResponseBody )

// FIN / END

Regards, saludos.

teste assim e reporte erros, pls.

Link to comment
Share on other sites

Application
===========
   Path and name: C:\api\carlo.exe (32 bits)
   Size: 4,367,360 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20200226)
   FiveWin  version: FWH 21.11
   C compiler version: Borland/Embarcadero C++ 7.3 (32-bit)
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 1 secs 
   Error occurred at: 02/19/24, 09:46:10
   Error description: Error MSXML2.ServerXMLHTTP.6.0/3  DISP_E_MEMBERNOTFOUND: LASTERRORMESSAGE
   Args:

Stack Calls
===========
   Called from:  => TOLEAUTO:LASTERRORMESSAGE( 0 )
   Called from: carlo.prg => FENVIAARQUIVO( 70 )
   Called from: carlo.prg => AVPI102( 12 )

System
======
   CPU type: Intel(R) Core(TM)2 Duo CPU     E7300  @ 2.66GHz 2666 Mhz
   Hardware memory: 3318 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 7
      1 ,                                                                                                     
      2 , C:\Windows\system32\SHLWAPI.dll                                                                     
      3 Altern�ncia de tarefas, C:\api\jair.exe                                                                                     
      4 DDE Server Window, C:\Windows\system32\OLE32.DLL                                                                       
      5 GDI+ Window, C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.24542_none_5c0717c7a00ddc 
      6 MCI command handling window, C:\Windows\system32\WINMM.DLL                                                                       
      7 Program Manager, C:\Windows\system32\SHELL32.dll                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   TOLEAUTO:LASTERRORMESSAGE
     Local   1:    U    
     Local   2:    C    "MSXML2.ServerXMLHTTP.6.0"
   FENVIAARQUIVO
     Param   1:    C    "99999999999"
     Param   2:    C    "08124858000100"
     Param   3:    C    "joao carlos"
     Param   4:    C    ".\func0001.JPG"
     Local   1:    O    Class: TOLEAUTO
     Local   2:    C    "{ "id_client": 99999999999"id_company": 08124858000100"Id_employee": joao carlos"File": .\func0001.JPG }"
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    C    "Erro no processo post:"
   AVPI102
     Local   1:    C    "99999999999"
     Local   2:    C    "08124858000100"
     Local   3:    C    "joao carlos"
     Local   4:    C    ".\func0001.JPG"
     Local   5:    C    ""

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HASHENTRY
     3 HBCLASS
     4 TOLEAUTO
     5 HBOBJECT
     6 TREG32
     7 TSTRUCT

Memory Analysis
===============
      685 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes

obrigado

 


 

Link to comment
Share on other sites

Tente fazer imitando este exemplo, senão você tá laskado, vai ter que aprender a usar CURL().



// C:\FHH\SAMPLES\ADHEMAR3.PRG

#include "fivewin.ch"

Function Main()

   Local cJSon, cRespuesta := "", oSoap, cToken
   
   cToken:= "TokenApi eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJJUlJJQk9MSVZJQSIsImNvZGlnb1Npc3RlbWEiOiI3NzExNEIyMERGQTRBRkI0NDFCMjVGNyIsIm5pdCI6Ikg0c0lBQUFBQUFBQUFETTBNYlV3TURNd01nRUFJc2g0VUFrQUFBQT0iLCJpZCI6NDI5MDgsImV4cCI6MTY4ODA4MzIwMCwiaWF0IjoxNjg0Nzc4NzcxLCJuaXREZWxlZ2FkbyI6MTQ1ODA2MDI0LCJzdWJzaXN0ZW1hIjoiU0ZFIn0.EgEF0lslzpnGkuFE05LazGbsKSkH98yN9B6fch5AEHL0On-mFtmld-3GaGahjP5n76DIbP3HECuktFY3xQ6pjQ"
 
   // oSoap = CreateObject("MSXML2.ServerXMLHTTP.6.0")

   #ifdef __XHARBOUR__

      Try

         Try
            oSoap := CreateObject( 'Microsoft.XMLHTTP' )
         Catch
            oSoap := CreateObject( 'MSXML2.XMLHTTP' )
         End

      Catch

         MsgInfo( 'Erro na Criação do Serviço' )

         RETURN NIL

      End

   #else

      Try

         Try
            oSoap := win_OleCreateObject( 'MSXML2.XMLHTTP' )
         Catch
            oSoap := win_OleCreateObject( 'Microsoft.XMLHTTP' )
         End

      Catch

         MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' )

         RETURN NIL

      End

   #endif
 
   cJson:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siat="https://siat.impuestos.gob.bo/">'+CRLF
   cJson+='<soapenv:Header/>'+CRLF
   cJson+=' <soapenv:Body>'+CRLF
   cJson+='  <siat:cufd>'+CRLF
   cJson+='   <SolicitudCufd>'+CRLF
   cJson+='     <codigoAmbiente>2</codigoAmbiente>'+CRLF
   cJson+='     <codigoModalidad>1</codigoModalidad>'+CRLF
   cJson+='     <!--Optional:-->'+CRLF
   cJson+='    <codigoPuntoVenta>0</codigoPuntoVenta>'+CRLF
   cJson+='    <codigoSistema>77114B20DFA4AFB441B25F7</codigoSistema>'+CRLF
   cJson+='    <codigoSucursal>0</codigoSucursal>'+CRLF
   cJson+='    <cuis>3A5218DE</cuis>'+CRLF
   cJson+='    <nit>145806024</nit>'+CRLF
   cJson+='   </SolicitudCufd>'+CRLF
   cJson+='  </siat:cufd>'+CRLF
   cJson+=' </soapenv:Body>'+CRLF
   cJson+='</soapenv:Envelope>'+CRLF
 
   oSoap:Open( "POST","https://siat.impuestos.gob.bo/", .F. )
   // oSoap:SetRequestHeader( "apikey", cToken )
   oSoap:Send( cJson )

   // cRespuesta:=oSoap:responseText

   IF oSoap:STATUS != 200

      MsgStop( AllTrim( Str( oSoap:Status ) ) + " - " + oSoap:StatusText, "Erro" )

      RETURN NIL

   ENDIF

   WHILE oSoap:ReadyState != 4

      SYSREFRESH()

      oSoap:WaitForResponse( 1000 )

   END

   // ? cRespuesta

   cRespuesta := oSoap:ResponseBody()

   IF FILE( "ADHEMAR.txt" )
      ERASE ADHEMAR.txt
   ENDIF

   MemoWrit('ADHEMAR.txt', cRespuesta)
     
return cRespuesta

// FIN / END

Regards, saludos.

Link to comment
Share on other sites

eu acho, que este modo de programação, não funciona mais com I.E. ou google e sim, somente com WEBVIEW(Microsoft Edge), já vá se acostumando com CURL(), maior pé no $aco para eu dominar isso em xHarbour, leia desde o inicio para ver se entende esse "trem".

https://forums.fivetechsupport.com/viewtopic.php?f=6&t=43685&hilit=curl&sid=cf863a9a2816ec56a1b3bea94fdbedae&start=60

Não me aprofundei, pois não uso, só queria tentar "dominar", não entendi muita coisa... kkkkk

Regards, saludos.

Link to comment
Share on other sites

  • 4 weeks later...

Carlos, o correto é solicitar um exemplo funcionado via CURL (linha de comando). É necessário entender os parametros e como vc envia o pdf (provavelmente em base64)

Enfim, sem um exemplo funcionando fica dificil te ajudar. Veja que no seu exemplo vc está enviando um JPG e não um PDF e vc está colocando o caminho no arquivo e não o conteudo e mesmo se for o conteudo com certeza não é no formato binário e sim no formato base64.

 

 

 

Link to comment
Share on other sites

ola pessoal 

ja vasculei tudo e nao achei nada para comsumir um api,tentei curl so da erro falta o ch

tem muita gente dizendo que funciou o deles mas nao vi nada que funciona testei todos os

exemplo e nao funcioou

e agora

carlos fwh 2111 xharb 123 

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...