Clipper On Line • Ver Tópico - Gateway de Pagamentos

Gateway de Pagamentos

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

Moderador: Moderadores

 

Gateway de Pagamentos

Mensagempor JoséQuintas » 23 Mai 2021 14:23

E se usar este padrão:

 oServer:SetRequestHeader( "Content-Type", "application/x-www-form-urlencoded" )


Não é usado o json no envio, e o :send() acaba sendo vazio.

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18158
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Gateway de Pagamentos

Mensagempor JoséQuintas » 23 Mai 2021 14:43

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18158
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Gateway de Pagamentos

Mensagempor JoséQuintas » 23 Mai 2021 14:51

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18158
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Gateway de Pagamentos

Mensagempor ctoas » 23 Mai 2021 15:38

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 de usuário

ctoas
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 52
Data de registro: 09 Mai 2005 16:22
Cidade/Estado: São Paulo
Curtiu: 5 vezes
Mens.Curtidas: 1 vez

Gateway de Pagamentos

Mensagempor Adson » 01 Jun 2021 14:39

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 de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes

Gateway de Pagamentos

Mensagempor rochinha » 05 Jun 2021 02:52

Amiguinhos,

Vou deixar umas dicas aqui quem sabe clareia a cabecinha:
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 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: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Gateway de Pagamentos

Mensagempor Abel » 20 Abr 2022 10:19

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
Abel
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 14 Mar 2012 13:16
Cidade/Estado: sao paulo / sp
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Gateway de Pagamentos

Mensagempor rochinha » 20 Abr 2022 14:53

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 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: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Gateway de Pagamentos

Mensagempor alxsts » 20 Abr 2022 15:54

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)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Gateway de Pagamentos

Mensagempor informais » 16 Set 2022 11:36

Olá pessoal Alguem conseguiu fazer funcionar ?
informais
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 23
Data de registro: 15 Jun 2018 07:14
Cidade/Estado: VISCONDE DO RIO BRANCO
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Gateway de Pagamentos

Mensagempor rochinha » 22 Jan 2023 21:42

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 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: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Gateway de Pagamentos

Mensagempor Alfredo » 07 Ago 2023 06:10

Alguem conseguiu fazer a integração com o IFood na nova API ?? Estou tendo estas dificuldades citadas acima, precisando de uma ajuda.
Alfredo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 1
Data de registro: 06 Ago 2023 07:57
Cidade/Estado: Belo Horizonte/MG
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Gateway de Pagamentos

Mensagempor Kapiaba » 10 Ago 2023 16:26

Kapiaba
Colaborador

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

Anterior



Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 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