Biblioteca feita para facilitar a geração e consulta de arrecadação via PIX no Banco do Brasil.
Para usar a biblioteca basta configurar a dependência no arquivo do maven.
<repository>
<id>bbpix</id>
<url>https://raw.github.com/rdabotelho/mvn-repo/bbpix/</url>
</repository>
<dependency>
<groupId>com.m2r</groupId>
<artifactId>bbpix</artifactId>
<version>1.0.0</version>
</dependency>
Para gerar uma arrecadação via PIX é necessário 5 informações:
- CLIENT_ID: Credencial fornecida pelo banco.
- CLIENT_SECRET: Senha da credencial fornecida pelo banco.
- APP_KEY: Chave da Aplicação.
- NUMERO_CONVENIO: Número do convênio de arrecadação do cliente.
- CODIGO_SOLICITACAO_BANCO_CENTRAL: Chave PIX.
BBPixFactory factory = BBPixFactory.builder()
.ambiente(AmbienteEnum.HOMOLOGACAO)
.clientId(Const.CLIENT_ID)
.clientSecret(Const.CLIENT_SECRET)
.gwAppKey(Const.GW_APP_KEY)
.build();
BBPix pix = factory.create();
LocalDateTime meiaNoite = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT).plusDays(1);
LocalDateTime agora = LocalDateTime.now();
Long expiracao = Duration.between(agora, meiaNoite).getSeconds();
ArrecadacaoPostRequest payload = ArrecadacaoPostRequest.builder()
.numeroConvenio(Const.NUMERO_CONVENIO)
.codigoSolicitacaoBancoCentralBrasil(Const.CODIGO_SOLICITACAO_BANCO_CENTRAL)
.emailDevedor("[email protected]")
.descricaoSolicitacaoPagamento("teste")
.valorOriginalSolicitacao(new BigDecimal("1.00"))
.dataVencimentoSolicitacao(agora.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")))
.quantidadeSegundoExpiracao(expiracao.intValue())
.build();
ArrecadacaoPostResponse result = pix.gerarPixArrecadacao(payload);
System.out.println("Código de conciliação: " + result.getCodigoConciliacaoSolicitante());
System.out.println("QRCode: " + result.getQrCode());
Para realizar consultar uma arrecadação via PIX é necessário 6 parâmetros:
- CLIENT_ID: Credencial fornecida pelo banco.
- CLIENT_SECRET: Senha da credencial fornecida pelo banco.
- APP_KEY: Chave da Aplicação.
- NUMERO_CONVENIO: Número do convênio de arrecadação do cliente.
- CODIGO_SOLICITACAO_BANCO_CENTRAL: Chave PIX.
- codigoConciliacaoSolicitante: Código de uma arrecadação via PIX gerada anteriormente.
BBPixFactory factory = BBPixFactory.builder()
.ambiente(AmbienteEnum.HOMOLOGACAO)
.clientId(Const.CLIENT_ID)
.clientSecret(Const.CLIENT_SECRET)
.gwAppKey(Const.GW_APP_KEY)
.build();
BBPix pix = factory.create();
Integer numeroConvenio = Const.NUMERO_CONVENIO;
String codigoConciliacaoSolicitante = "8XUeAEZlWeYaYv0x0trfWw6a6KDLvZyI5xh";
ArrecadacaoGetResponse result = pix.obterPixArrecadacao(numeroConvenio, codigoConciliacaoSolicitante);
System.out.println("Código de conciliação: " + codigoConciliacaoSolicitante);
System.out.println("QRCode: " + result.getQrCode());
System.out.println("Situação: " + result.getEstadoSolicitacao());
System.out.println("Data Hora Pagamento: " + result.getTimestampPagamento());
System.out.println("Valor Pago: " + result.getValorPagamento());