Jump to content
Fivewin Brasil

Boleto com Api (alguem Usa)


marcioe

Recommended Posts

Boa noite,

Eu uso para o "ITAÚ", "BRADESCO","SANTANDER" e SICOOB e vou começar a do developer's  Banco do Brasil.
 

Exemplo do ITAU ( Uma parte é em fivewin e outra em PHP).

Em FIVEWI
N

if len(alltrim(xnagencia)) < 4 .or. len(alltrim(xnagencia)) > 4
   msgstop("Agência com digitos inferior ou superior a 4 posições","Atenção")
	exit
endif
if len(alltrim(xndconta)) < 1 .or. len(alltrim(xndconta)) > 1
   msgstop("Dígito da conta inferior ou superior a 1 posição.","Atenção")
	exit
endif
if empty(xncarteira)
   msgstop("Carteira vazia.","Atenção")
	exit
endif

if empty(_nret_access_token)
   _Client_ID = xnclienteid
   _Client_secret = xnclientesecret
   _Client_certificadocrt = xncertificadocrt + ".crt"
   _Client_certificadokey = xncertificadocrt + ".key"

   cSignatureValue = ""
   _nArquivo_enviar = "http://www.wsiscom.com.br/itau/acess_token_itau.php?Client_ID_envia=" + _Client_ID +;
                      "&Client_secret_envia=" + _Client_secret +;
					   "&Client_certificado_crt=" + _Client_certificadocrt +;
					   "&Client_certificado_key=" + _Client_certificadokey
   try
      _oserver := CreateObject( "MSXML2.XMLHTTP" )
      _oserver:Open( "GET",_nArquivo_enviar, .F. )
      _oserver:SetRequestHeader("Content-Type","application/text/xml")
      _oserver:Send(_nArquivo_enviar)
      WHILE _oserver:readyState != 4
            _oserver:WaitForResponse( 500 )
      end
	   cSignatureValue = _oserver:responseText
   catch
      msgstop("1 - Erro na geração do arquivo para o itau. www.wsiscom.com.br/itau/acess_token_itau.php","Erro Atenção")
	   exit
   end
   if empty(cSignatureValue)
      msgstop("2 - Sem resposta do acess_token_itau.php.","Erro Atenção")
      exit
   endif
   if cSignatureValue = nil
      msgstop("3- Sem resposta do acess_token_itau.php.","Erro Atenção")
	   exit
   endif

   lh := 00
   mdire = "jsoncodf.html"
   oPrn := TDosPrn():New(mdire)
   oPrn:StartPage()
   oPrn:lZeraBuffer:=.T.
   oPrn:Say(lh,000,cSignatureValue)
   oPrn:EndPage()
   oPrn:End()

   nlocaliza_erro := At( 'curl_error', cSignatureValue )
   if !empty(nlocaliza_erro)
      exit
   endif

   _nret_X_CorrelationID = ""
   _nret_x_itau_correlationID = ""
   _nret_x_itau_flowID = ""
   _nret_access_token = ""
   _nret_refresh_access_token = ""
   _nret_scope_id_boleto = ""

   nlocaliza_registro_1 := At( 'X-CorrelationID:', cSignatureValue )
   nlocaliza_registro_2 := At( 'Accept:', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_X_CorrelationID = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_X_CorrelationID = substr(_nret_X_CorrelationID,18,50)
   else
	   msgstop("Não foi possível localizar o registro (X-CorrelationID:) ","Atenção")
      exit
   endif

   nlocaliza_registro_1 := At( 'x-itau-correlationID:', cSignatureValue )
   nlocaliza_registro_2 := At( 'x-itau-flowID:', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_x_itau_correlationID = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_x_itau_correlationID = substr(_nret_x_itau_correlationID,23,50)
   else
	   msgstop("Não foi possível localizar o registro (x-itau-correlationID:) ","Atenção")
      exit
   endif

   nlocaliza_registro_1 := At( 'x-itau-flowID:', cSignatureValue )
   nlocaliza_registro_2 := At( 'x-itau-Limit:', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_x_itau_flowID = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_x_itau_flowID = substr(_nret_x_itau_flowID,16,50)
   else
	   msgstop("Não foi possível localizar o registro (x-itau-flowID:) ","Atenção")
      exit
   endif

   nlocaliza_registro_1 := At( 'access_token', cSignatureValue )
   nlocaliza_registro_2 := At( 'token_type', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_access_token = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_access_token = substr(_nret_access_token,18,5000)
	   _nnXqq = ""
      for ttqq = 1 to len(_nret_access_token)
	       if substr(_nret_access_token,ttqq,1) = ' '
		   elseif substr(_nret_access_token,ttqq,1) = ':'
		   elseif substr(_nret_access_token,ttqq,1) = '"'
		   elseif substr(_nret_access_token,ttqq,1) = ','
		   else
		      _nnXqq = _nnXqq + substr(_nret_access_token,ttqq,1)
		   endif
	   next
      _nret_access_token = _nnXqq
   else
	   msgstop("Não foi possível localizar o registro (access_token) ","Atenção")
      exit
   endif

   nlocaliza_registro_1 := At( 'refresh_token', cSignatureValue )
   nlocaliza_registro_2 := At( 'scope', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_refresh_access_token = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_refresh_access_token = substr(_nret_refresh_access_token,19,5000)
	   _nnXqq = ""
      for ttqq = 1 to len(_nret_refresh_access_token)
	       if substr(_nret_refresh_access_token,ttqq,1) = ' '
		   elseif substr(_nret_refresh_access_token,ttqq,1) = ':'
		   elseif substr(_nret_refresh_access_token,ttqq,1) = '"'
		   elseif substr(_nret_refresh_access_token,ttqq,1) = ','
		   else
		      _nnXqq = _nnXqq + substr(_nret_refresh_access_token,ttqq,1)
		   endif
	   next
      _nret_refresh_access_token = _nnXqq
   else
	   msgstop("Não foi possível localizar o registro (refresh_token) ","Atenção")
      exit
   endif

   nlocaliza_registro_1 := At( 'scope', cSignatureValue )
   nlocaliza_registro_2 := At( 'active', cSignatureValue )
   if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
      _nret_scope_id_boleto = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
	   _nret_scope_id_boleto = substr(_nret_scope_id_boleto,17,37)
   else
	   msgstop("Não foi possível localizar o registro (scope id_boleto) ","Atenção")
      exit
   endif
endif

// aqui ...
narquivoJSON := '{' //+ CRLF
narquivoJSON += '"data": {' //+ CRLF
//narquivoJSON += '"etapa_processo_boleto": "validacao",' //+ CRLF
narquivoJSON += '"etapa_processo_boleto": "efetivacao",' //+ CRLF
narquivoJSON += '"codigo_canal_operacao": "API",' //+ CRLF
narquivoJSON += '"beneficiario": {' //+ CRLF
_id_beneficiario = alltrim(xnagencia) + replicate('0',7-len(alltrim(xnconta))) + alltrim(xnconta) + alltrim(xndconta)
narquivoJSON += '"id_beneficiario": ' + '"' +  _id_beneficiario +'"' //+ CRLF
narquivoJSON += '},' //+ CRLF
narquivoJSON += '"dado_boleto": {' //+ CRLF
narquivoJSON += '"descricao_instrumento_cobranca": "boleto",' //+ CRLF
narquivoJSON += '"tipo_boleto": "a vista",' //+ CRLF
narquivoJSON += '"codigo_carteira": ' + '"' + alltrim(xncarteira) + '"' + ',' //+ CRLF
_valor_total_titulo = alltrim(str(int(avdup * 100)))
_valor_total_titulo = replicate('0',15-len(_valor_total_titulo)) + _valor_total_titulo
narquivoJSON += '"valor_total_titulo": ' + '"' + _valor_total_titulo + '"' + ',' //+ CRLF 
narquivoJSON += '"codigo_especie": "01",' //+ CRLF
narquivoJSON += '"valor_abatimento": "000",' //+ CRLF
narquivoJSON += '"data_emissao": ' + '"' + substr(dtos(ldate),1,4) + "-" + substr(dtos(ldate),5,2) + "-" + substr(dtos(ldate),7,2) + '"' + ','  //+ CRLF
narquivoJSON += '"indicador_pagamento_parcial": true,' //+ CRLF
narquivoJSON += '"quantidade_maximo_parcial": 0,' //+ CRLF
narquivoJSON += '"pagador": {' //+ CRLF
narquivoJSON += '"pessoa": {' //+ CRLF
narquivoJSON += '"nome_pessoa": ' + '"' + substr(alltrim(rrazaosocial),1,50) + '"' + ',' //+ CRLF
if !empty(rfantasia)
   narquivoJSON += '"nome_fantasia": ' + '"' + rfantasia + '"' + ',' //+ CRLF
else
   narquivoJSON += '"nome_fantasia": ' + '"' + substr(alltrim(rrazaosocial),1,25) + '"' + ',' //+ CRLF
endif
narquivoJSON += '"tipo_pessoa": {' //+ CRLF
narquivoJSON += '"codigo_tipo_pessoa": ' + '"' + iif(len(alltrim(rcnpjcpf)) = 11,'F','J') + '"' + ',' //+ CRLF
if len(alltrim(rcnpjcpf)) = 11
	narquivoJSON += '"numero_cadastro_pessoa_fisica": ' + '"' + alltrim(rcnpjcpf) + '"' //+ CRLF
else
	narquivoJSON += '"numero_cadastro_nacional_pessoa_juridica": ' + '"' + alltrim(rcnpjcpf) + '"' //+ CRLF
endif
narquivoJSON += '}'  //+ CRLF
narquivoJSON += '},' //+ CRLF
narquivoJSON += '"endereco": {' //+ CRLF
narquivoJSON += '"nome_logradouro": ' + '"' + substr(alltrim(rendereco) + ',' + alltrim(rnumero),1,45) + '"' + ',' //+ CRLF
narquivoJSON += '"nome_bairro": ' + '"' + substr(alltrim(rbairro),1,15) + '"' + ',' //+ CRLF
narquivoJSON += '"nome_cidade": ' + '"' + alltrim(rcidade) + '"' + ',' //+ CRLF
narquivoJSON += '"sigla_UF": ' + '"' + ruf + '"' + ',' //+ CRLF
narquivoJSON += '"numero_CEP": ' + '"' + alltrim(rcep) + '"' //+ CRLF
narquivoJSON += '}' //+ CRLF
narquivoJSON += '},' //+ CRLF
narquivoJSON += '"dados_individuais_boleto": [{' //+ CRLF
narquivoJSON += '"numero_nosso_numero": ' + '"' + _nxgravarnumero + '"' + ',' //+ CRLF
narquivoJSON += '"data_vencimento": ' + '"' + substr(dtos(advenc),1,4) + "-" + substr(dtos(advenc),5,2) + "-" + substr(dtos(advenc),7,2) + '"' + ',' //+ CRLF
narquivoJSON += '"valor_titulo": ' + '"' + _valor_total_titulo + '"' + ','  //+ CRLF

// verificar o que significa...
_nandup = ""
for ttqq = 1 to len(andup)
    if substr(andup,ttqq,1) = "0" .or. substr(andup,ttqq,1) = "1" .or. substr(andup,ttqq,1) = "2" .or.;
	    substr(andup,ttqq,1) = "3" .or. substr(andup,ttqq,1) = "4" .or. substr(andup,ttqq,1) = "5" .or.;
		substr(andup,ttqq,1) = "6" .or. substr(andup,ttqq,1) = "7" .or. substr(andup,ttqq,1) = "8" .or.;
		substr(andup,ttqq,1) = "9"
	    _nandup = _nandup  + substr(andup,ttqq,1)
	 endif
next
narquivoJSON += '"texto_uso_beneficiario":' + '"' + substr(alltrim(_nandup),1,10) + '"' + ',' //+ CRLF
narquivoJSON += '"texto_seu_numero": ' + '"' + substr(alltrim(_nandup),1,10) + '"' //+ CRLF

narquivoJSON += '}],' //+ CRLF

//narquivoJSON += '"desconto": {' //+ CRLF
//narquivoJSON += '"codigo_tipo_desconto": "00"' //+ CRLF
//narquivoJSON += '},' //+ CRLF

if !empty(zfinmultaatraso)
   _percentualmulta = "0"
	_zfinmultaatraso = zfinmultaatraso
	nPassainteiro = "S"
	nInteiro = ""
	nDecimal = ""
	for ttqq = 1 to len(alltrim(str(_zfinmultaatraso)))
	    if nPassainteiro = "S"
		   if substr(alltrim(str(_zfinmultaatraso)),ttqq,1) != "."
	          nInteiro = nInteiro + substr(alltrim(str(_zfinmultaatraso)),ttqq,1)
		   else
		      nPassainteiro = "N"
		   endif
	    else
	       nDecimal = nDecimal + substr(alltrim(str(_zfinmultaatraso)),ttqq,1)
	    endif
	next
	_percentualmulta  = replicate("0",7 - len(nInteiro)) + nInteiro + nDecimal + replicate("0",5 - len(nDecimal))
   narquivoJSON += '"multa": {' //+ CRLF
   narquivoJSON += '"codigo_tipo_multa": "02",' //+ CRLF
	narquivoJSON += '"quantidade_dias_multa": 1,' //+ CRLF
   narquivoJSON += '"percentual_multa": ' + '"' + _percentualmulta + '"' //+ CRLF
   narquivoJSON += '},' //+ CRLF
endif

if !empty(zfintaxajurosmensal)
   _percentualjuro  = "0"
	_zfintaxajurosmensal = zfintaxajurosmensal
	nPassainteiro = "S"
	nInteiro = ""
	nDecimal = ""
	for ttqq = 1 to len(alltrim(str(_zfintaxajurosmensal)))
	    if nPassainteiro = "S"
		   if substr(alltrim(str(_zfintaxajurosmensal)),ttqq,1) != "."
	          nInteiro = nInteiro + substr(alltrim(str(_zfintaxajurosmensal)),ttqq,1)
		   else
		      nPassainteiro = "N"
		   endif
	    else
	       nDecimal = nDecimal + substr(alltrim(str(_zfintaxajurosmensal)),ttqq,1)
	    endif
	next
	_percentualjuro  = replicate("0",7 - len(nInteiro)) + nInteiro + nDecimal + replicate("0",5 - len(nDecimal))
   narquivoJSON += '"juros": {' //+ CRLF
   narquivoJSON += '"codigo_tipo_juros": "90",' //+ CRLF
   narquivoJSON += '"quantidade_dias_juros": 1,' //+ CRLF
	narquivoJSON += '"percentual_juros": ' + '"' + _percentualjuro + '"' //+ CRLF
   narquivoJSON += '},' //+ CRLF
endif

narquivoJSON += '"recebimento_divergente": {' //+ CRLF
narquivoJSON += '"codigo_tipo_autorizacao": "01"' //+ CRLF
narquivoJSON += '},' //+ CRLF
narquivoJSON += '"desconto_expresso": false' //+ CRLF

//narquivoJSON += '"protesto": {' //+ CRLF
//narquivoJSON += '"protesto": 4,' //+ CRLF
//narquivoJSON += '"quantidade_dias_protesto": 0' //+ CRLF
//narquivoJSON += '},' //+ CRLF
//narquivoJSON += '"negativacao": {' //+ CRLF
//narquivoJSON += '"negativacao": 5,' //+ CRLF
//narquivoJSON += '"quantidade_dias_negativacao": 0' //+ CRLF
//narquivoJSON += '},' //+ CRLF

narquivoJSON += '}' //+ CRLF
narquivoJSON += '}' //+ CRLF
narquivoJSON += '}' //+ CRLF

lh := 00
mdire = "jsonpuro" + ".txt"
oPrn := TDosPrn():New(mdire)
oPrn:StartPage()
oPrn:lZeraBuffer:=.T.
oPrn:Say(lh,000,narquivoJSON)
oPrn:EndPage()
oPrn:End()

cSignatureValue = ""
_nArquivo_enviar = "http://www.wsiscom.com.br/itau/envia_boleto.php?Client_certificado_crt=" + _Client_certificadocrt +;
                   "&Client_certificado_key=" + _Client_certificadokey +;
					"&Cliente_Token="          + _nret_access_token +;
					"&Client_ID_envia="        + _Client_ID +;
					"&Cliente_Field="          + narquivoJSON

lh := 00
mdire = "jsonEnviaboleto" + ".txt"
oPrn := TDosPrn():New(mdire)
oPrn:StartPage()
oPrn:lZeraBuffer:=.T.
oPrn:Say(lh,000,_nArquivo_enviar)
oPrn:EndPage()
oPrn:End()

try
   _oserver := CreateObject( "MSXML2.XMLHTTP" )
   _oserver:Open( "GET",_nArquivo_enviar, .F. )
   _oserver:SetRequestHeader("Content-Type","application/json")
   _oserver:Send(_nArquivo_enviar)
   WHILE _oserver:readyState != 4
         _oserver:WaitForResponse( 500 )
   end
	cSignatureValue = _oserver:responseText
catch
   msgstop("1 - Erro na geração do arquivo para o itau. www.wsiscom.com.br/itau/envia_boleto.php","Erro Atenção")
	exit
end
if empty(cSignatureValue)
   msgstop("2 - Sem resposta do envia_boleto.php.","Erro Atenção")
   exit
endif
if cSignatureValue = nil
   msgstop("3- Sem resposta do envia_boleto.php.","Erro Atenção")
	exit
endif

lh := 00
mdire = "jsonpuro.html"
oPrn := TDosPrn():New(mdire)
oPrn:StartPage()
oPrn:lZeraBuffer:=.T.
oPrn:Say(lh,000,cSignatureValue)
oPrn:EndPage()
oPrn:End()

_nxgravarnumeroPego = ""
_nxgravarlinhadigitavel = ""

//verifica_html := MemoRead("jsonpuro.html")

nlocaliza_registro_1 := At( '[http_code] =>', cSignatureValue )
if !empty(nlocaliza_registro_1)
   if substr(cSignatureValue,nlocaliza_registro_1,18) != "[http_code] => 200"
		msgstop(substr(cSignatureValue,nlocaliza_registro_1,18),"Erro")
       exit
   endif							
else
	msgstop("Não foi possível localizar o retorno da inclusão do registro no banco Itaú","Atenção")
   exit
endif

nlocaliza_registro_1 := At( 'numero_nosso_numero', cSignatureValue )
nlocaliza_registro_2 := At( 'dac_titulo', cSignatureValue )
if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
   _ninc_X = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
   _nxgravarnumeroPego = ""
	for ttqq = 1 to len(_ninc_X)
	    if substr(_ninc_X,ttqq,1) = "0" .or. substr(_ninc_X,ttqq,1) = "1" .or. substr(_ninc_X,ttqq,1) = "2" .or.;
		   substr(_ninc_X,ttqq,1) = "3" .or. substr(_ninc_X,ttqq,1) = "4" .or. substr(_ninc_X,ttqq,1) = "5" .or.;
		   substr(_ninc_X,ttqq,1) = "6" .or. substr(_ninc_X,ttqq,1) = "7" .or. substr(_ninc_X,ttqq,1) = "8" .or.;
		   substr(_ninc_X,ttqq,1) = "9"
	       _nxgravarnumeroPego = _nxgravarnumeroPego + substr(_ninc_X,ttqq,1)
		endif
	next	
else
	msgstop("Não foi possível localizar o registro (linha digitavel) no retorno da inclusão do registro no banco ","Atenção")
   exit
endif

nlocaliza_registro_1 := At( 'numero_linha_digitavel', cSignatureValue )
nlocaliza_registro_2 := At( 'data_limite_pagamento', cSignatureValue )
if !empty(nlocaliza_registro_1) .or. !empty(nlocaliza_registro_2)
   _ninc_X = substr(cSignatureValue,nlocaliza_registro_1,(nlocaliza_registro_2 - nlocaliza_registro_1))
   _nxgravarlinhadigitavel = ""
	for ttqq = 1 to len(_ninc_X)
	    if substr(_ninc_X,ttqq,1) = "0" .or. substr(_ninc_X,ttqq,1) = "1" .or. substr(_ninc_X,ttqq,1) = "2" .or.;
		   substr(_ninc_X,ttqq,1) = "3" .or. substr(_ninc_X,ttqq,1) = "4" .or. substr(_ninc_X,ttqq,1) = "5" .or.;
		   substr(_ninc_X,ttqq,1) = "6" .or. substr(_ninc_X,ttqq,1) = "7" .or. substr(_ninc_X,ttqq,1) = "8" .or.;
		   substr(_ninc_X,ttqq,1) = "9"
	       _nxgravarlinhadigitavel = _nxgravarlinhadigitavel + substr(_ninc_X,ttqq,1)
		endif
	next
   _nxgravarlinhadigitavel = transform(_nxgravarlinhadigitavel,'@r 99999.99999  99999.999999  99999.999999  9  99999999999999')
else
	msgstop("Não foi possível localizar o registro (linha digitavel) no retorno da inclusão do registro no banco ","Atenção")
   exit
endif


 

EM PHP.. São 02 arquivos que criei e coloquei em meu FTP.. O que retorna o TOKEN e depois o que envia o boleto.

PHP que retorna o TOKEN  (acess_token_itau.php)

<?php
$Client_ID_envia = $_GET['Client_ID_envia'];
$Client_secret_envia = $_GET['Client_secret_envia'];
$Client_certificado_crt = $_GET['Client_certificado_crt'];
$Client_certificado_key = $_GET['Client_certificado_key'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sts.itau.com.br/api/oauth/token");
curl_setopt($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSLCERT,$Client_certificado_crt);
curl_setopt($ch, CURLOPT_SSLKEY,$Client_certificado_key);
curl_setopt($ch, CURLOPT_CAINFO,$Client_certificado_crt);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials&client_id=$Client_ID_envia&client_secret=$Client_secret_envia");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
		"Content-Type: application/x-www-form-urlencoded",
		"x-itau-correlationID: 2",
		"x-itau-flowID: 1"
	));
$response = curl_exec($ch);
$info =curl_errno($ch)>0 ? array("curl_error_".curl_errno($ch)=>curl_error($ch)) : curl_getinfo($ch);
echo("<pre>");
print_r($info);
curl_close($ch);
echo $response;
echo("</pre>");
?>

PHP QUE ENVIA O BOLETO (envia_boleto.php)

<?php
$Client_certificado_crt = $_GET['Client_certificado_crt'];
$Client_certificado_key = $_GET['Client_certificado_key'];
$Cliente_Token = $_GET['Cliente_Token'];
$Client_ID_envia = $_GET['Client_ID_envia'];
$Cliente_Field = $_GET['Cliente_Field'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.itau.com.br/cash_management/v2/boletos");
curl_setopt($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_ENCODING,'');
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSLCERT,$Client_certificado_crt);
curl_setopt($ch, CURLOPT_SSLKEY,$Client_certificado_key);
curl_setopt($ch, CURLOPT_CAINFO,$Client_certificado_crt);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "$Cliente_Field");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        "Content-Type: application/json",
        "x-itau-apikey: $Client_ID_envia",
	    "x-itau-correlationID: 2",
        "Authorization: Bearer $Cliente_Token"
	));
$response = curl_exec($ch);
$info =curl_errno($ch)>0 ? array("curl_error_".curl_errno($ch)=>curl_error($ch)) : curl_getinfo($ch);
echo("<pre>");
print_r($info);
curl_close($ch);
echo $response;
echo("</pre>");
?>


Esses 02 arquivos em PHP, são chamados pelo meu sistema através do método GET.

O desenvolvimento pra o Banco do Brasil é quase 95% idêntico ao do ITAÚ E DO SICOOB, os 02 são por developer's.

Abraço.

Link to comment
Share on other sites

E para imprimir eu utilizo o MRBOLETO.

		    	  if nnescolhe = 1
		    	     ++nnescolhe
		  	      oBoleto  := MR_Boleto():New( cFilePdf )
		    	  endif
		  	      oBoleto:Banco________ := substr(xnbanco,1,3)
                  oBoleto:Banco_Agencia := alltrim(xnagencia)
                  oBoleto:Banco_Ag_Dv__ := iif(empty(xndagencia),"",alltrim(xndagencia))
                  oBoleto:Banco_Ag_Un_A := iif(empty(xndagencia_Un),"",alltrim(xndagencia_Un))
                  oBoleto:Conta________ := alltrim(xnconta)
                  oBoleto:Conta_DV_____ := alltrim(xndconta)
                  oBoleto:Conta_OP_____ := iif(empty(xnoperacao),"","'" + alltrim(xnoperacao))
                  oBoleto:Carteira_____ := alltrim(xncarteira)
                  oBoleto:Carteira_Tipo := iif(empty(xntpcarteira),"",alltrim(xntpcarteira))
                  oBoleto:NossoNumero__ := tnossonumerosequencia
                  oBoleto:Doc_Origem___ := iif( substr(nNumerododocument_a_gravar,9,3) = "Ped","DM","DM")
                  oBoleto:Prefixo______ := iif(empty(xnprefixo),"",alltrim(xnprefixo))
                  oBoleto:Prefixo_DV___ := iif(empty(xndprefixo),"",alltrim(xndprefixo))
                  oBoleto:Doc_Numero___ := alltrim(andup)
                  oBoleto:Doc_Aceite___ := alltrim(xnaceite)
                  oBoleto:Doc_Especie__ := alltrim(xnespecie)
                  oBoleto:Doc_Data_____ := ldataemissao
                  oBoleto:Vencimento___ := advenc
                  oBoleto:Valor________ := avdup
                  oBoleto:Multa_Auto___ := iif(empty(zfinmultaatraso),0,zfinmultaatraso)
                  oBoleto:Juros_Mes____ := iif(empty(zfintaxajurosmensal),0,zfintaxajurosmensal)
                  oBoleto:Numero_Vias__ := val(xnvias)
                  oBoleto:Local_Pagamen := { xnlocalpagamento }
		  	      //if empty(xninstrucao)
		  	       oBoleto:Instrucoes___ := { "","" }
		  	      //else
		  	      //endif
                  oBoleto:Demonstrativo := { "","","","","","","","","","","","","","","" }
                  oBoleto:Cedente______ := { mlinh1,mlinh2,mlinh3}
                  oBoleto:Sacado_______ := { mlinha1,mlinha2,mlinha3,mlinha4 }
		  	      oBoleto:Avalista_____ := { "Não informado.", "", "" }
		  	      oBoleto:AddPage()

 

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...