Gateway de Pagamentos

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gateway de Pagamentos

Mensagem por JoséQuintas »

E se usar este padrão:

Código: Selecionar todos

 oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )
Não é usado o json no envio, e o :send() acaba sendo vazio.

Código: Selecionar todos

METHOD Token( ... ) CLASS IFoodClass

   LOCAL cUrl  := "https://merchant-api.ifood.com.br/authentication/v1.0/oauth/token"

   cUrl += "?grantType=client_credentials" + ;
           "&clientId=" + ::cClientId + ;
           "&clientSecret=" + ::cSecret + ;
           "&authorizationCode=" + ;
           "&authorizationCodeVerifier=" + ;
           "&refreshToken="

   ::Post( "POST", cUrl, "" )
   ::aRespToken := ::aJson

   RETURN ::aJson
Esse está ok, trás o token.
O problema agora está nas requisições usando o token.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gateway de Pagamentos

Mensagem por JoséQuintas »

Agora que "enxerguei".

Se usa fivewin, e fivewin é pra windows.... tá mais prático você usar MSXML, e dispensar a libcurl.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gateway de Pagamentos

Mensagem por JoséQuintas »

Só mais um comentário que faltou eu dizer:

Eu já fiz a comunicação com IFOOD na API anterior, também em json.
Essa API anterior ainda funciona, e vai funcionar até o final do ano.

O que estou tentando colocar em funcionamento é a nova API, antes que a anterior pare de funcionar.
Por enquanto qualquer das duas pode ser usada.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ctoas
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 09 Mai 2005 16:22
Localização: São Paulo
Contato:

Gateway de Pagamentos

Mensagem por ctoas »

Agora que "enxerguei".

Se usa fivewin, e fivewin é pra windows.... tá mais prático você usar MSXML, e dispensar a libcurl.
Jose, eu já abandonei a libcurl e nem faço ideia de como usar MSXML.

Estou fazendo via linha de comando, crio um .BAT em tempo de execução e rodo escondido gravando o retorno em um .TXT.

Ficou transparente para o usuário, muito rápido e resolveu meu problema, pois já estou com esse projeto atrasado.

[]'s
Avatar do usuário
Adson
Usuário Nível 1
Usuário Nível 1
Mensagens: 33
Registrado em: 05 Mar 2019 10:36
Localização: GOIANIA/GO

Gateway de Pagamentos

Mensagem por Adson »

ctoas escreveu:
Agora que "enxerguei".

Se usa fivewin, e fivewin é pra windows.... tá mais prático você usar MSXML, e dispensar a libcurl.
Jose, eu já abandonei a libcurl e nem faço ideia de como usar MSXML.

Estou fazendo via linha de comando, crio um .BAT em tempo de execução e rodo escondido gravando o retorno em um .TXT.

Ficou transparente para o usuário, muito rápido e resolveu meu problema, pois já estou com esse projeto atrasado.

[]'s

CTOAS, por favor, posta o .bat pois acho que vou precisar fazer assim tb pq estou levando uma surra pra enviar um formulário multi-data pra um WS.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Gateway de Pagamentos

Mensagem por rochinha »

Amiguinhos,

Vou deixar umas dicas aqui quem sabe clareia a cabecinha:

Código: Selecionar todos

Function EnviarJSONporWebService()
   local oWS, sDataRaw, sAuthorization
   oWS := TOleAuto():New( "MSXML2.ServerXMLHTTP.6.0" )
   if ValType(oWS) <> "O"
      return nil
   endif
   sDataRaw := '{' + CRLF + ;
	  '"items": [' + CRLF + ;
	  '  {' + CRLF + ;
	  '    "name": "Meu Produto",' + CRLF + ;
	  '    "value": 7500,' + CRLF + ;
	  '    "amount": 1' + CRLF + ;
	  '  }' + CRLF + ;
	  '],' + CRLF + ;
	  '"customer": {' + CRLF + ;
	  '  "name": "Gorbadoc Oldbuck",' + CRLF + ;
	  '  "cpf": "94271564656",' + CRLF + ;
	  '  "phone_number": "5144916523"' + CRLF + ;
	  '},' + CRLF + ;
	  '"expire_at": "2018-12-20",' + CRLF + ;
	  '"configurations": {' + CRLF + ;
	  '      "fine": 200,' + CRLF + ;
	  '      "interest": 33' + CRLF + ;
	  '    },' + CRLF + ;
	  '"message": "Este é um espaço de até 80 caracteres para informar algo a seu cliente",' + CRLF + ;
	  '"repeats": 5,' + CRLF + ;
	  '"split_items": false' + CRLF + ;
	'}'
   // Certificado que vamos usar do armazem de certificados de Windows.
   oWS:SetOption( 3, "Nome do certificado" )
   oWS:Open( "POST", "https://sandbox.gerencianet.com.br/v1/carnet", .f. )
   // Caso seja necessario definir timeouts
   // Os valores sao em milisegundos
   oWS:setTimeouts( 15000, 15000, 600000, 600000 )
   // Metodo chamados
   oWS:SetRequestHeader( "Content-Type", "application/json" )
   oWS:SetRequestHeader( "Authorization", sAuthorization )
   // Enviamos a informacao JSON
   oWS:send( sDataRaw )
   MsgInfo( "Resposta: " + oWS:responsexml:xml)
   return ""    

function EnviarJSONporDOS()
   local sDataRaw, sAuthorization, sParameters
   sDataRaw := '{' + CRLF + ;
               '"items": [' + CRLF + ;
               '  {' + CRLF + ;
               '    "name": "Meu Produto",' + CRLF + ;
               '    "value": 7500,' + CRLF + ;
               '    "amount": 1' + CRLF + ;
               '  }' + CRLF + ;
               '],' + CRLF + ;
               '"customer": {' + CRLF + ;
               '  "name": "Gorbadoc Oldbuck",' + CRLF + ;
               '  "cpf": "94271564656",' + CRLF + ;
               '  "phone_number": "5144916523"' + CRLF + ;
               '},' + CRLF + ;
               '"expire_at": "2018-12-20",' + CRLF + ;
               '"configurations": {' + CRLF + ;
               '      "fine": 200,' + CRLF + ;
               '      "interest": 33' + CRLF + ;
               '    },' + CRLF + ;
               '"message": "Este é um espaço de até 80 caracteres para informar algo a seu cliente",' + CRLF + ;
               '"repeats": 5,' + CRLF + ;
               '"split_items": false' + CRLF + ;
               '}'
   sParameters := [ --location --request POST 'https://sandbox.gerencianet.com.br/v1/carnet' ] + ;
                  [ --header 'Authorization: {{Authorization}}' ] + ;
                  [ --header 'Content-Type: application/json' ] + ;
                  [ --data-raw ] + sDataRaw + ;
                  [ > GNCURL.TXT]
   cMacro      := "GNCURL.BAT"
   cComando    := "CURL.EXE " + sParameters
   errhandle   := fCreate( cMacro )         
   fWrite( errhandle, cComando )
   fClose( errhandle )
   //
   // MsgRun( "Aguarde o termino do processo", "Envio de Email...", {|| WaitRun( cMacro, 0 ) } )
   Run( cMacro, 0 )
   //
   cRetorno    := MemoRead( "GNCURL.TXT" )
   return nil
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Gateway de Pagamentos

Mensagem por Abel »

ola Rochinha,

ao usar SETTIMEOUTS esta dando erro na execucao,

"argument error: settimeouts', tem que incluir algun .ch no prg ou algum comando na compilacao ?

uso harbour 3.2 modo console.

Obrigado,
ABEL
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Gateway de Pagamentos

Mensagem por rochinha »

Amiguinhos,

Pode desabilitar a linha.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Gateway de Pagamentos

Mensagem por alxsts »

Olá!
rochinha escreveu:Pode desabilitar a linha.
Se está dando erro, desabilite a linha... mais fácil, não é?

Esta linha (SetTimeOuts) deve estar antes de invocar o método Open. Esta é a causa do erro.

Veja: setTimeouts Method
[]´s
Alexandre Santos (AlxSts)
informais
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 15 Jun 2018 07:14
Localização: VISCONDE DO RIO BRANCO

Gateway de Pagamentos

Mensagem por informais »

Olá pessoal Alguem conseguiu fazer funcionar ?
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Gateway de Pagamentos

Mensagem por rochinha »

Amiguinhos,

O exemplo que postei eu apenas montei, não testei pois não tenho cadastro no gerencianet.

Além do mais se ao invés de trabalhar com json quiserem trabalhar com xml use o aplicativo que disponibilizei neste link para converter json para xml.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Alfredo
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 06 Ago 2023 07:57
Localização: Belo Horizonte/MG

Gateway de Pagamentos

Mensagem por Alfredo »

Alguem conseguiu fazer a integração com o IFood na nova API ?? Estou tendo estas dificuldades citadas acima, precisando de uma ajuda.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Gateway de Pagamentos

Mensagem por Kapiaba »

Boa tarde Alfredo, tens o código para testes?

Algo assim?

https://forums.fivetechsupport.com/view ... ad#p261202

abs.
Responder