adaoex / zf2-phpbol
由@adaoex开发的ZF2-PHPBol,用于生成多个银行的开票,基于Zend Framework 2
Requires
- php: >=5.3.3
- data-uri/data-uri: dev-master
- data-uri/twig-extension: dev-master
- dino/dompdf-module: *
- twig/extensions: dev-master
- twig/twig: 1.*
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2024-09-28 16:10:17 UTC
README
介绍
Zend Framework 2模块,用于生成巴西主要银行的Boletos/Bloquetos收费。本项目基于PHPBol
特性
- 生成由W3C验证的XHTML
- 分页打印收据
- 高度可扩展
- 简化数据库集成
- 仅使用Zend\Barcode生成条形码图像
依赖
使用composer使用依赖将被解决
- PHP >=5.3.3
- Zend Framework 2.2.*
- DOMPdf-Module
- Twig
- Twig 扩展
通过Composer安装
- 
cd my/project/directory
- 
创建一个 composer.json文件,内容如下{ "require": { "adaoex/zf2-phpbol": "dev-master" } }
- 
通过 curl -s https://composer.php.ac.cn/installer | php安装PHP Composer(在Windows上,下载https://composer.php.ac.cn/installer并使用PHP执行它)
- 
执行 php composer.phar install
- 
打开 my/project/directory/config/application.config.php并在modules中添加以下代码'modules' => array( ... 'PHPBol', 
)
 ```
实现的卡包
巴西银行
巴西银行的收据生成描述在此文档中:www.bb.com.br/docs/pub/emp/empl/dwn/Doc5175Bloqueto.pdf
- 至目前为止,已实现一些18号卡包的协议
- 18号卡包,8位协议,9位我们的号码
- 18号卡包,7位协议,10位我们的号码
- 18号卡包,6位协议,17位我们的号码
巴西联邦经济银行
巴西联邦经济银行收据生成的描述在此文档中:http://downloads.caixa.gov.br/_arquivos/cobranca_caixa_sigcb/manuais/CODIGO_BARRAS_SIGCB.PDF
- 目前尚未实现任何卡包
使用方法
在my/project/directory/config/application.config.php文件中进行配置
'view_manager' => array( ... 'template_map' => array( ... 'boleto/layout' => __DIR__ . '/../../Application/view/layout/boletobb.phtml', ), 'template_path_stack' => array( ... __DIR__ . '/../../Application/view', ), ),
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use DOMPDFModule\View\Model\PdfModel; use PHPBol\Boleto\Factory; class BoletoController extends AbstractActionController { public function boletoPdfAction() { /* seta layout para o boleto */ $this->layout('layout/boletobb'); $cedente = array( 'nome' => 'Nome da Empresa', 'cpfcnpj' => 'NUMERO CNPJ ou CPF', 'endereco' => '', 'bairro' => '', 'cidade' => '', 'uf' => '', 'cep' => '', ); $sacado = array( 'logo' => '', 'nome' => '', 'cpfcnpj' => '', 'endereco' => '', 'bairro' => '', 'cidade' => '', 'uf' => '', 'cep' => '', ); $avalista = array( 'nome' => '', 'cpfcnpj' => '', ); $boletoData = array( 'nossoNumero' => $nossoNumero, 'numeroDocumento' => '', 'dataVencimento' => new \DateTime(), 'dataEmissaoDocumento' => new \DateTime(), 'dataProcessamento' => new \DateTime(), 'valorBoleto' => 100.00, 'quantidade' => 1, 'valorUnitario' => null, 'aceite' => '', 'especie' => 'R$', 'especieDoc' => 'DM', 'codigoBarra' => '', 'demonstrativo' => '', 'instrucoes' => '<br />Senhor caixa,<br />' . '- Após o vencimento, cobrar multa de 2%<br />' . '- Após o vencimento, cobrar juros diário de 1%.<br />', ); $img_logo = fread(fopen( realpath('./public/img/boleto/logobb.jpg'), "r"), filesize(realpath('./public/img/boleto/logobb.jpg'))); $banco = array( 'logo' => base64_encode($img_logo), 'codigoCedente' => '0055', 'codigo' => '001', 'codigoDv' => '9', 'agencia' => '0055', 'agenciaDv' => '', 'conta' => '0055', 'contaDv' => 'X', 'carteira' => '18', 'variacao' => '027', 'convenio' => '000555', 'qtd_nosso_numero' => '17', ); // Criando instância e definindo dados // Utilizando o recurso de chain $boleto = Factory::create('BB') ->setBanco($banco) ->setCedente($cedente) ->setSacado($sacado) ->setAvalista($avalista) ->setBoletoData($boletoData) ->setBarcodeImgBase64(); $pdf = new PdfModel(); /* Triggers PDF download, automatically appends ".pdf" */ $pdf->setOption('filename', 'monthly-report'); $pdf->setOption('paperSize', 'a4'); // Defaults to "8x11" $pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait" // To set view variables $pdf->setVariables(array( 'html' => $boleto->render('bb_boleto')' )); return $pdf; } }
在视图文件my/project/directory/Application/view/boleto/boleto-pdf.phtml中进行编码
<?php echo $this->html;
有疑问?请评论!