andre-luiz1997 / opencnabphpbank
此库用于读取远程文件并辅助生成返回文件,针对希望接收客户发送的文件并生成返回文件的金融科技公司
dev-master
2024-07-15 19:52 UTC
Requires
- php: >=5.6
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpunit/phpunit: ^6.5
This package is not auto-updated.
Last update: 2024-09-20 18:38:59 UTC
README
此库用于读取远程文件并辅助生成返回文件,针对希望接收客户发送的文件并生成返回文件的金融科技公司
考虑为我们捐款以支持我们
- 一个remessa文件处理一般文件的这些问题。
- 每个Remessa的类继承自remssaAbstract,并设置银行名称,即个性化布局的文件夹
- RegistroAbstract处理任何布局中任何记录的独特方法
- 一个通用类继承自registroAbstract,并实现与特定布局记录通用的setter和getter 最后,一个注册类从通用类继承,并定义要使用的布局,如果需要,可以覆盖或实现通用的getter和setter。
使用Docker
在项目根目录下执行
docker-compose up -d
通过Composer安装
将 "openboleto/opencnabphpbank": "dev-master" 添加到您的 composer.json 中,然后运行 update 或 install
访问示例URL:https://:8080/samples/ExemploRemessa.php
开发状态
**由于某些原因,箱子的布局已被禁用,需要修改才能恢复功能,请查看此问题以了解详情 openboleto/OpenCnabPHP#184
<?php use \CnabPHP\Retorno; $arquivo = new Retorno(246,'cnab240',array( 'nome_empresa' =>"Empresa ABC", // seu nome de empresa 'tipo_inscricao' => 2, // 1 para cpf, 2 cnpj 'numero_inscricao' => $empresa->empresas_cnpjcpf, // seu cpf ou cnpj completo 'agencia' => '1234', // agencia sem o digito verificador 'agencia_dv' => 1, // somente o digito verificador da agencia 'conta' => '12345', // número da conta 'conta_dv' => 1, // digito da conta 'codigo_beneficiario' => '123456', // codigo fornecido pelo banco 'numero_sequencial_arquivo' => 1, // sequencial do arquivo um numero novo para cada arquivo gerado )); $lote = $arquivo->addLote(array('tipo_servico'=> 1)); // tipo_servico = 1 para cobrança registrada, 2 para sem registro $lote->inserirDetalhe(array( 'codigo_movimento' => 1, //1 = Entrada de título, para outras opçoes ver nota explicativa C004 manual Cnab_SIGCB na pasta docs 'nosso_numero' => 50, // numero sequencial de boleto 'seu_numero' => 43,// se nao informado usarei o nosso numero /* campos necessarios somente para itau e siccob, não precisa comentar se for outro layout */ 'carteira_banco' => 109, // codigo da carteira ex: 109,RG esse vai o nome da carteira no banco 'cod_carteira' => "01", // I para a maioria ddas carteiras do itau /*---------------------------------------------------------------------------------------- */ 'especie_titulo' => "DM", // informar dm e sera convertido para codigo em qualquer laytou conferir em especie.php 'valor' => 100.00, // Valor do boleto como float valido em php 'emissao_boleto' => 2, // tipo de emissao do boleto informar 2 para emissao pelo beneficiario e 1 para emissao pelo banco 'protestar' => 3, // 1 = Protestar com (Prazo) dias, 3 = Devolver após (Prazo) dias 'prazo_protesto' => 5, // Informar o numero de dias apos o vencimento para iniciar o protesto 'nome_pagador' => "JOSÉ da SILVA ALVES", // O Pagador é o cliente, preste atenção nos campos abaixo 'tipo_inscricao' => 1, //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica 'numero_inscricao' => '123.122.123-56',//cpf ou ncpj do pagador 'endereco_pagador' => 'Rua dos developers,123 sl 103', 'bairro_pagador' => 'Bairro da insonia', 'cep_pagador' => '12345-123', // com hífem 'cidade_pagador' => 'Londrina', 'uf_pagador' => 'PR', 'data_vencimento' => '2016-04-09', // informar a data neste formato 'data_emissao' => '2016-04-09', // informar a data neste formato 'vlr_juros' => 0.15, // Valor do juros de 1 dia' 'data_desconto' => '2016-04-09', // informar a data neste formato 'vlr_desconto' => '0', // Valor do desconto 'baixar' => 1, // codigo para indicar o tipo de baixa '1' (Baixar/ Devolver) ou '2' (Não Baixar / Não Devolver) 'prazo_baixar' => 90, // prazo de dias para o cliente pagar após o vencimento 'mensagem' => 'JUROS de R$0,15 ao dia'.PHP_EOL."Não receber apos 30 dias", 'email_pagador' => 'rogerio@ciatec.net', // data da multa 'data_multa' => '2016-04-09', // informar a data neste formato, // data da multa 'vlr_multa' => 30.00, // valor da multa // campos necessários somente para o sicoob 'taxa_multa' => 30.00, // taxa de multa em percentual 'taxa_juros' => 30.00, // taxa de juros em percentual )); echo $arquivo->getText();
读取文件
<?php $fileContent = file_get_contents("retorno_cnab240_caixa.ret"); $arquivo = new Remessa($fileContent); $registros = $arquivo->getRegistros(); foreach($registros as $registro) { if($registro->R3U->codigo_movimento==6){ $nossoNumero = $registro->nosso_numero; $valorRecebido = $registro->R3U->vlr_pago; $dataPagamento = $registro->R3U->data_ocorrencia; $carteira = $registro->carteira; // você ja pode dar baixa } }
正在等待志愿者对布局进行编辑和测试。
许可
- MIT许可