Página 3 de 3
Gateway de Pagamentos
Enviado: 23 Mai 2021 14:23
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.
Gateway de Pagamentos
Enviado: 23 Mai 2021 14:43
por JoséQuintas
Agora que "enxerguei".
Se usa fivewin, e fivewin é pra windows.... tá mais prático você usar MSXML, e dispensar a libcurl.
Gateway de Pagamentos
Enviado: 23 Mai 2021 14:51
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.
Gateway de Pagamentos
Enviado: 23 Mai 2021 15:38
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
Gateway de Pagamentos
Enviado: 01 Jun 2021 14:39
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.
Gateway de Pagamentos
Enviado: 05 Jun 2021 02:52
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
Gateway de Pagamentos
Enviado: 20 Abr 2022 10:19
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
Gateway de Pagamentos
Enviado: 20 Abr 2022 14:53
por rochinha
Amiguinhos,
Pode desabilitar a linha.
Gateway de Pagamentos
Enviado: 20 Abr 2022 15:54
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
Gateway de Pagamentos
Enviado: 16 Set 2022 11:36
por informais
Olá pessoal Alguem conseguiu fazer funcionar ?
Gateway de Pagamentos
Enviado: 22 Jan 2023 21:42
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.
Gateway de Pagamentos
Enviado: 07 Ago 2023 06:10
por Alfredo
Alguem conseguiu fazer a integração com o IFood na nova API ?? Estou tendo estas dificuldades citadas acima, precisando de uma ajuda.
Gateway de Pagamentos
Enviado: 10 Ago 2023 16:26
por Kapiaba
Boa tarde Alfredo, tens o código para testes?
Algo assim?
https://forums.fivetechsupport.com/view ... ad#p261202
abs.