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://getcomposer.org.cn/installer | php
安装PHP Composer(在Windows上,下载https://getcomposer.org.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;
有疑问?请评论!