kkelf/bbboletocobranca

巴西银行汇票

1.0.11 2024-08-08 07:51 UTC

This package is auto-updated.

Last update: 2024-09-08 08:02:04 UTC


README

与巴西银行API的集成,用于注册带有QR Code Pix的汇票

基于BBboleto的项目,打印基于novoboletophp。项目链接

安装

Composer

composer require kkelf/bbboletocobranca

或在其composer.json文件中。

"kkelf/bbboletocobranca": "^1.0.0"

如何使用

use BBboletoCobranca\BancoDoBrasil;
use BBboletoCobranca\Constants\IndicadorPix;
use BBboletoCobranca\Constants\TipoDocumento;
use BBboletoCobranca\Entities\PagadorEntity;
use BBboletoCobranca\Entities\BeneficiarioEntity;
use BBboletoCobranca\Entities\InstrucoesEntity;
use BBboletoCobranca\Requests\BoletoRequest;

$bancoDoBrasil = new BancoDoBrasil([
	'clientId' => 'xxxxxxxxxxx',
	'clientSecret' => 'xxxxxxxxx',
	'gw_dev_app_key' => 'xxxxxx',
	'logo' => 'http://placehold.it/200&text=logo',
	'production' => false,
	'formato' => 'html' // ou 'pdf'
	
]);

	
$beneficiario = new BeneficiarioEntity;
$beneficiario->setTipoDocumento(TipoDocumento::CNPJ)
	->setDocumento('92.862.701/0001-58')
	->setNome('DOCERIA BARBOSA DE ALMEIDA');



$pagador = new PagadorEntity;
$pagador->setTipoDocumento(TipoDocumento::CPF)
	->setDocumento('97965940132')
	->setNome('João da Costa Antunes')
	->setLogradouro('Avenida Dias Gomes 1970')
	->setCep(77458000)
	->setMunicipio('Sucupira')
	->setBairro('Centro')
	->setUf('TO');

$instrucoes = new InstrucoesEntity;
$instrucoes->setInstrucoes([
	'- instrução 1',
	'- instrução teste 2',
	'- instrução teste 3',
])
->setDemonstrativo("Demonstrativo teste");

$boletoRequest = new BoletoRequest();
$boletoRequest->setConvenio(3128557)
	->setCarteira(17) 
	->setVariacaoCarteira(35) 
	->setDataEmissao('2023-08-23') 
	->setDataVencimento('31/08/2023') 
	->setValorOriginal('00,21') 
	->setSeuNumero('987654321987654') // número para controle
	->setNossoNumero('0000100017') // nosso número sequencial do banco
	->setPagador($pagador)
	->setBeneficiario($beneficiario)
	->setInstrucoes($instrucoes)
	->setIndicadorPix(IndicadorPix::QRCODE_DINAMICO);

//se o formato for pdf será baixado automaticamente no register
$data = $bancoDoBrasil->register($boletoRequest);

echo $data;

说明

要添加在汇票上打印的说明,需要填写“说明”实体并在BoletoRequest中设置。

以下添加的说明将在汇票上打印,它们与折扣、利息、罚款以及与应向付款人展示的信息相关的任何特定性有关。

// ... code
use BBboletoCobranca\Entities\InstrucoesEntity;

$instrucoes = new InstrucoesEntity;
$instrucoes->setInstrucoes([
	'- instrução 1',
	'- instrução teste 2',
	'- instrução teste 3',
])->setDemonstrativo("Demonstrativo teste");

$boletoRequest = new BoletoRequest();
	//... outros set's
	->setInstrucoes($instrucoes)
	// ... 

折扣

要添加汇票中的折扣说明,需要填写“折扣”实体并在BoletoRequest中设置。

注意:折扣是可选的,如果标题中没有折扣,则不需要填写此实体,也不需要在Request中设置

// ... code
use BBboletoCobranca\Entities\DescontoEntity;
use BBboletoCobranca\Constants\Desconto;

$desconto = new DescontoEntity;
$desconto->setTipo(Desconto::VALOR)
	->setData('10/07/2018')
	->setValor('5.00');

$boletoRequest = new BoletoRequest();
	//... outros set's
	->setDesconto($desconto)
	// ... 

利息

要添加汇票中的利息说明,需要填写“利息”实体并在BoletoRequest中设置。

利息具有一系列提供的信息值,如果传递方式不正确,银行将不接受数据,并且不会注册汇票。

注意:利息是可选的,如果标题中没有折扣,则不需要填写此实体,也不需要在Request中设置

// ... code
use BBboletoCobranca\Entities\JurosEntity;
use BBboletoCobranca\Constants\Juros;

// ... code 
$juros = new JurosEntity;
$juros->setTipo(Juros::VALOR_POR_DIA_DE_ATRASO)
	->setValor('10.00');

$boletoRequest = new BoletoRequest();
	//... outros set's
	->setJuros($juros)
	// ... 

罚款

要添加汇票中的罚款说明,需要填写“罚款”实体并在BoletoRequest中设置。

罚款与利息一样,具有一系列提供的信息值,如果传递方式不正确,银行将不接受数据,并且不会注册汇票。

注意:罚款是可选的,如果标题中没有折扣,则不需要填写此实体,也不需要在Request中设置

// ... code
use BBboletoCobranca\Entities\MultaEntity;
use BBboletoCobranca\Constants\Multa;

// ... code 
$multa = new MultaEntity;
$multa->setTipo(Multa::VALOR)
	->setValor('10.00');

$boletoRequest = new BoletoRequest();
	//... outros set's
	->setMulta($multa)
	// ... 

担保人

要添加汇票中的担保人,需要填写“罚款”实体并在BoletoRequest中设置。

注意:担保人是可选的,如果标题中没有折扣,则不需要填写此实体,也不需要在Request中设置

// ... code
use BBboletoCobranca\Constants\TipoDocumento;
use BBboletoCobranca\Entities\AvalistaEntity;

// ... code 
$avalista = new AvalistaEntity;
$avalista->setTipoDocumento(TipoDocumento::CNPJ)
	->setDocumento('09.123.123\0001-81')
	->setNome('Ewerson Carvalho');

$boletoRequest = new BoletoRequest();
	//... outros set's
	->setAvalista($avalista)
	// ...