Ir para conteúdo
  • Cadastre-se

dev botao

Integração de boleto com banco Inter ou NuBank


Carol Dare
Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 1335 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Terminei o código para o button13 do teste que anexei (Consulta Lista de Boletos Inter) que ainda não estava pronto:

 

procedure TForm1.Button13Click(Sender: TObject);
var JsonStreamRetorno,JsonStreamEnvio: TStringStream;
    lista1:tstringlist;
    valor:real;
    texto:string;
    Parametros:string;
begin
Memo1.Clear;

lista1:=tstringlist.create;

JsonStreamRetorno := TStringStream.Create('');
lista1.text:='';//memo3.text;

JsonStreamEnvio   := TStringStream.Create(lista1.text);

IdHttp1.Request.CustomHeaders.Clear;
IdHTTP1.Request.CustomHeaders.Add('Content-Type: application/json');
IdHTTP1.Request.CustomHeaders.Add('x-inter-conta-corrente: '+conta_corrente);

Parametros:='';
Parametros:=Parametros+'?filtrarPor=TODOS';
Parametros:=Parametros+'&dataInicial=2020-01-01';
Parametros:=Parametros+'&dataFinal=2020-08-14';
Parametros:=Parametros+'&ordenarPor=SEUNUMERO';

try
  IdHTTP1.Get('https://apis.bancointer.com.br:8443/openbanking/v1/certificado/boletos'+Parametros , JsonStreamRetorno);
except
  on E:EIdHTTPProtocolException do
    memo1.Lines.add(IdHTTP1.ResponseText+#13#10+e.ErrorMessage)
  else
    showexception(exceptobject, exceptaddr);
end;
memo1.Lines.Add('Código de retorno: '+inttostr(IdHTTP1.ResponseCode));
memo1.Lines.Add('');

if JsonStreamRetorno.DataString<>'' then
  Memo1.Lines.add(JsonStreamRetorno.DataString);

if IdHTTP1.ResponseCode<>200 then
  showmessage('Transação não pode ser inicada ('+inttostr(IdHTTP1.ResponseCode)+').');
end;
 

obs: esse foi um teste inicial, por isso tem algumas variaveis declaradas que não tem uso.

obs: lembrando que de acordo com o manual do Inter os  boletos lançados no dia de hoje não aparecem na listagem, somente os anteriores. Já na consulta individual aparece.

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

5 horas atrás, Larry disse:

Primeiro tem que criar os arquivo do certificado.

No exemplo que vou postar tem que colocar no formcreate o numero da conta e o caminho de 3 dos arquivos criados.

No memo3 tem que substituir alguns campos com os dados corretos:

 

1) Crie o aplicativo dentro do banco Inter

a) Digite o seguinte comando no console (evite acentos):
openssl req -new -newkey rsa:2048 -nodes -keyout nomearquivo.key -out nomearquivo.csr

b) Nos campos solicitados, insira as informações:

Country Name (código do país): as duas letras que representam o país internacionalmente. Ex: BR é Brasil
State or Province Name (nome completo do estado): ex. Goias
Locality Name (nome completo da cidade): ex. Goiania
Organization Name (a razão social completa da sua empresa): ex. SuaEmpresa
Organizational Unit Name (número de aplicação): copie a chave exclusiva gerada pelo Inter e cole-a no campo. Este é o "Número de aplicação" e é formado por letras, números e separado por hífens.
Common Name (nome comum - campo opcional): o nome de domínio totalmente qualificado, ou URL que você deseja proteger. Exemplo: SEUDOMINIO.COM.BR
E-mail Address (endereço de e-mail): insira seu e-mail
A Challenge Password (uma senha forte): crie uma senha forte para este SSL

c) Abra a CSR em um editor de texto e copie todo o texto gerado.
d) Cole o texto gerado no campo "Assinatura do certificado (CSR)" e clique em "Confirmar".

2) Espere receber o e-mail do Inter avisando que sua aplicação foi Aprovada. Apos aprovação acesse suas aplicações no site do Inter e clique na 
seta que aparece do lado esquerdo no dome da aplicação. Clique no icone da nuvem para baixa o certificado (.crt). 

3) Faça a seguinte conversão com o arquivo baixado:
openssl x509 -inform PEM -in nomearquivo.crt > nomearquivo-publicchave.pem

4) Com o arquivo .KEY gerado anteriormente no passo 1
openssl rsa -in nomearquivo.key -text > nomearquivo-privatechave.pem
 

BoletoInterAcbr.rar 6 kB · 10 downloads

Desenvolvi tudo hoje...

Ainda tem muito a fazer para uma implementação, mas como não conheço a fundo os moldes dos fontes do Acbr acho que alguém pode fazer bem melhor.

ja tinha pensado o mesmo kkk

Ficou muito bom, tentei inclusive mudar minha conta MEI para PJ, pediram 12 paginas de um pdf preenchido a mão, desisti. Mas o que fez ficou legal.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

@Larry você o cara, obrigado por compartilhar seu código e o seu progresso na comunicação com o inter, fiz todo o procedimento e esta quase tudo funcionando, até essa ultima atualização do button13
Testei com os boletos que inclui manualmente. 

Mas estou tendo problema pra incluir o boleto, alterei o json de teste com meus dados, mas quando tento enviar retorna o erro

HTTP/1.1 400 Bad Request

Código de retorno: 400

Sabe o que pode ser ?

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
4 minutos atrás, jaques.rocha disse:

@Larry você o cara, obrigado por compartilhar seu código e o seu progresso na comunicação com o inter, fiz todo o procedimento e esta quase tudo funcionando, até essa ultima atualização do button13
Testei com os boletos que inclui manualmente. 

Mas estou tendo problema pra incluir o boleto, alterei o json de teste com meus dados, mas quando tento enviar retorna o erro

HTTP/1.1 400 Bad Request

Código de retorno: 400

Sabe o que pode ser ?

 

Sem querer descobri, era o numero do telefone do pagador, estava colocando com ddd, deixei só numero pois vi que tem o campo ddd mais abaixo e registrou.
Novamente Muito obrigado, eu uso o inter para cobrar a mensalidade dos meus clientes e fazia manualmente, agora devo conseguir automatizar.

Link para o comentário
Compartilhar em outros sites

6 horas atrás, Julyana Villela disse:

Estou precisando fazer integração com o inter. Vi que tem a api, mas estou emperrada na geração do certificado.

Alguém pode dar alguma dica?

O que eu coloco no domínio? Preciso ter um domínio para isso?

Obrigada

Julyana

Não precisa ter domínio não.

O campo "Common Name" é opcional e você pode colocar qualquer coisa.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
3 horas atrás, Julyana Villela disse:

Então posso não colocar nada no domínio? 

Após gerar o certificado, onde ele será usado? No consumo da api?

Sabem se há alguma previsão do acbr fazer algo para o inter? Ou por se tratar de uso de api não terá como?

Obrigada

O @Larry deu o caminho das pedras, depois de gerar esse certificado você tem de postar na criação app no site do banco, depois de aprovado você tem de baixar e converter ele, é só olhar os posts anteriores que ele descreve como fazer isso, e o exemplo que ele postou com código fonte também esta bem fácil de entender. Consegui fazer funcionar com minha conta, agora vou faze os ajustes para tentar gerar pelo meu sistema, vai me ajudar muito na cobrança da mensalidade mês que vem.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 14/08/2020 at 17:01, jaques.rocha disse:

Sem querer descobri, era o numero do telefone do pagador, estava colocando com ddd, deixei só numero pois vi que tem o campo ddd mais abaixo e registrou.
Novamente Muito obrigado, eu uso o inter para cobrar a mensalidade dos meus clientes e fazia manualmente, agora devo conseguir automatizar.

@jaques.rocha

Bom dia,  vi que a principio vc recebeu uma mensagem de erro.

Estou fazendo testes e estou recebendo esta mensagem de erro "error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol."

Segui a risca os passos para criar o certificado mas parece que está faltando alguma configuração, creio não ser nada nos dados do pagador, tentei trocar a propriedade "SSLOptions.Method", isso altera o erro mas não deixa prosseguir, coloquei tambem as dll's do openSSl na pasta do executável.

A única informação que alterei no exemplo foi o número da conta [informei a minha] e os dados do Memo3 [Informei meus dados]

Tentei executar o exemplo em máquinas com windows 10 e 2019 server sem sucesso.

Baseado nestas informações, você ou alguém saberia me guiar para encontrar meu erro?

Agradeço.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
12 minutos atrás, Robson A. Ribeiro disse:

@jaques.rocha

Bom dia,  vi que a principio vc recebeu uma mensagem de erro.

Estou fazendo testes e estou recebendo esta mensagem de erro "error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol."

Segui a risca os passos para criar o certificado mas parece que está faltando alguma configuração, creio não ser nada nos dados do pagador, tentei trocar a propriedade "SSLOptions.Method", isso altera o erro mas não deixa prosseguir, coloquei tambem as dll's do openSSl na pasta do executável.

A única informação que alterei no exemplo foi o número da conta [informei a minha] e os dados do Memo3 [Informei meus dados]

Tentei executar o exemplo em máquinas com windows 10 e 2019 server sem sucesso.

Baseado nestas informações, você ou alguém saberia me guiar para encontrar meu erro?

Agradeço.

Bom dia @Robson A. Ribeiro

Creio que o seu problema seja a versao do openssl, tive esse tipo de erro quando estava tentando integrar com um ecomerce, na época demorei de descobrir pois o mesmo projeto se compilava no delphi XE8 rodava normal, se compilava no XE7 dava erro no SSL, ate que descobri que utilizando as dll disponiveis no ACBr (DLLs\OpenSSL\1.0.2.21\x86). Tenta pegar essas dll e salvar na mesma pasta que esta sendo gerado o executável e veja se resolve.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 20/08/2020 at 08:30, jaques.rocha disse:

Bom dia @Robson A. Ribeiro

Creio que o seu problema seja a versao do openssl, tive esse tipo de erro quando estava tentando integrar com um ecomerce, na época demorei de descobrir pois o mesmo projeto se compilava no delphi XE8 rodava normal, se compilava no XE7 dava erro no SSL, ate que descobri que utilizando as dll disponiveis no ACBr (DLLs\OpenSSL\1.0.2.21\x86). Tenta pegar essas dll e salvar na mesma pasta que esta sendo gerado o executável e veja se resolve.

@jaques.rocha

Desculpe a demora em responder, muito trabalho por aqui.

Deu certo agora, segui sua orientação, coloquei as Dll's da pasta DLLs\OpenSSL\1.0.2.21\x86 e consegui obter uma resposta positiva, todas as funsionalizades funcionaram.

Obrigado pela ajuda.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1335 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...