integração com API de Plataformas de Cobrança

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

Moderador: Moderadores

ar sistemas
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 05 Jun 2018 00:11
Localização: BELO HORIZONTE/MG

integração com API de Plataformas de Cobrança

Mensagem por ar sistemas »

Boa tarde jovens Clippeiros.
Estou tentando fazer uma integração com uma api da boleto cloud. Mas meus conhecimentos são nulos neste assunto.
Após alguns dias de estudo, consegui entender a api, fazer a conexão e validá-la.
Estou agarrado agora no envio dos dados para geração do boleto ( o método body).

Meu código:

Código: Selecionar todos

if nTipo = 1 // homologacao
	cAdress := 'https://sandbox.boletocloud.com/api/v1/boletos/'
Else
	cAdress := 'https://app.boletocloud.com/api/v1/boletos/'	 // producao
Endif

cUrl:= cAdress
    
oHttp:= CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )
                             
oHttp:Open( "POST", cUrl, .f. )
oHttp:setRequestHeader('Content-Type'  , 'application/x-www-form-urlencoded')             
oHttp:setRequestHeader('Authorization' , 'Basic YXBpLWtleV8td0llQ2hQdFg0TFFoSExISEpoUEpGQkthNXJxV1IzSjJ6bUR2ZW5KQ3BBPTp0b2tlbg==')
 // comando acima (Authorization) está ok.... código token validado.
retorno := oHttp:Send() 
IF oHttp:status <> 200 // diferente de aprovado
   MsgStop( Alltrim(Str(oHttp:status)) +" - "+ Alltrim(oHttp:ResponseBody) , "Erro na requisição")
	MemoWrit('boleto.html', oHttp:ResponseBody)   // coloquei apenas para visualizar o retorno em caso de erro
	RETURN NIL
ENDIF     
x :=  hb_jsondecode( oHttp:ResponseBody, @aResult ) 
return nil 
Este código retorna um .json informando que os parâmetros do boleto nao foram enviados.
Aí está o problema. Já gerei a variável que contém os dados do boleto, mas não estou sabendo como enviar.
A api pede para enviar um body com os dados.
Como faço isso?

Segue link com as informações da api.

https://boleto.cloud/app/dev/api#visao-geral-dados


Em tempo
minigui (Roberto Lopes ) + mysql
Avatar do usuário
André Corrêa
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 03 Nov 2015 07:46
Localização: Caraguatatuba/SP

integração com API de Plataformas de Cobrança

Mensagem por André Corrêa »

Bom dia,

Os dados do boleto você deve enviar no método send().

Código: Selecionar todos

retorno := oHttp:Send("PASSAR OS DADOS DO BOLETO AQUI")
Abraço,
-- André Corrêa

"Opte por aquilo que faz o seu coração vibrar, apesar de todas as consequências". - Osho
Responder