marcioe Posted December 3, 2022 Report Share Posted December 3, 2022 Olá, a todos Pessoal tem algum amigo que usa emissão de boleto por meio de api, tipo essa abaixo https://developers.bb.com.br/home Quem puder compartilhar será muito util Quote Link to comment Share on other sites More sharing options...
Wellington Vieira Posted December 7, 2022 Report Share Posted December 7, 2022 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 FIVEWIN 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. Quote Link to comment Share on other sites More sharing options...
Wellington Vieira Posted December 7, 2022 Report Share Posted December 7, 2022 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() Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.