Giter Club home page Giter Club logo

boletophp's Introduction

boletophp

Projeto Código-Aberto de Sistema de Boletos bancários em PHP

Qual o principal motivo deste projeto?

Este projeto foi criado por Elizeu Alcantara desde Maio/2006 e teve origem do Projeto BBBoletoFree que tiveram colaborações de Daniel William Schultz e Leandro Maniezo que por sua vez foi derivado do PHPBoleto de João Prado Maia e Pablo Martins F. Costa.

Criar um sistema de geração de Boletos que seja mais simples do que o PhpBoleto e que se estenda ao desenvolvimento de boletos dos bancos mais usados no mercado, além do Banco do Brasil do projeto BBBoletoFree. Este sistema é de Código Aberto e de Livre Distribuição conforme Licença GPL.

Este projeto visa atender exclusivamente aos profissionais e desenvolvedores na área técnica de programação PHP dos boletos, portanto se faz necessário conhecimento desejado e estudo do mesmo para a perfeita configuração do boleto a ser usado, sendo de inteira responsabilidade do profissional a instalação, funcionamento, testes e compensação do mesmo em conta bancária, pois não damos suporte técnico, portanto mensagens enviadas a nós com dúvidas gerais, técnicas ou solicitações de Suporte não serão respondidas.

O projeto BoletoPhp não tem foco na questão administrativa, comercial ou jurídica, pois isto compete exclusivamente aos bancos devido as suas particularidades existentes de cada carteira de cada boleto. Maiores informações sobre o conceito de Boleto de Cobrança, você pode acessar aqui o site da Wikipédia

Qual a principal idéia deste projeto?

Padronizar um formato simples de geração de boletos de cada banco baseado em um padrão composto somente de 3 arquivos php

Tomamos como exemplo o Boleto do Caixa Econômica, onde temos:

  • boleto_cef.php : Aqui ficam os DADOS usados para a geração do boleto
  • layout_cef.php : Aqui fica a estrutura HTML para a geração do boleto
  • funcoes_cef.php : Aqui ficam as FUNÇOES usadas para a geração do boleto

Este conceito do BoletoPHP facilita a criação de boletos de outros bancos?

Sim, pois facilita para um desenvolvedor para que seja dado continuidade no Projeto BoletoPHP para o desenvolvimento dos demais bancos, pois o principal trabalho para criar o boleto de um novo banco é criar o arquivo php de funções ( no caso acima o funcoes_cef.php) , onde estão as regras de cada banco para a geração das 2 principais informações do boleto que são a Linha Digitável e o Código de Barras, já que no layout_xxxx.php muda apenas a logo do banco e no arquivo boleto_xxxx.php acrescenta poucas variáveis específicas de cada banco.

Boletos/Bancos Desenvolvidos

Banco / Entidade Carteira
Banco do Brasil 18 - Convênio de 6 , 7 ou 8 Dígitos
Unibanco Especial - Sem Registro
Caixa Econômica SR [SICOB, SINCO e SIGCB]
Itaú 175 / 174 / 178 / 104 / 109 - Sem Registro
Hsbc CNR - Sem Registro
Bradesco 06 / 03 - Sem Registro
Banestes 00 - Sem Registro
Real 57 - Sem Registro
Nossa Caixa 5 [Cobrança Direta] ou Carteira 1 [Cobrança Simples]
Sudameris (Integrado ao Banco Real) 57 [Cobrança Sem registro] ou Carteira 20 [Cobrança Com registro]
Santander-Banespa (Banco 033 - Antigo 353) 102 - Sem registro
Santander-Banespa (Banco 033) COB - Sem registro
Bancoob 01 [SICOOB] - Sem registro
BESC 25 - Sem registro
Sicredi A - Simples

boletophp's People

Contributors

brenodouglas avatar cerebrumgit avatar edvanmc avatar faabiosr avatar fexdelux avatar israelst avatar maurogeorge avatar pedrofornaza avatar rfsbsb avatar stephandesouza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boletophp's Issues

Cedente / Sacado

A partir do mês de Julho por medida do banco central, as nomenclaturas dos nomes Cedente e Sacado foi substituída por Beneficiário e Pagador, respectivamente.

Cedente = Beneficiário;
Sacado = Pagador;

Problema com data de vencimento

Bom dia,

estou usando p boletophp junto com o Magento e reparei uma coisa:
a data de vencimento gerada sempre é calculada usando a data ATUAL mais o prazo de vencimento, e não a data do pedido. Desta forma, se o cliente gerar o boleto hoje, ele sairá com uma data de vencimento. Se amanhã ele gerar de novo, em vez de gerar o mesmo boleto com a mesma data, vai ser gerado um boleto com uma nova data de vencimento. Assim, se ele ficar gerando o boleto, ele nunca vence!

Resumindo: não teria um jeito de usar a data do pedido em vez da data atual para calcular a data do vencimento?

Obrigado!
Vinícius

Cobrança Resgistrada, Ajuda !

@israelst @ramon @kivanio @rafaelp @rfsbsb
Pessoal, o que vai ocorrer com o BoletoPHP a partir de 2017 ? dia 01/01/2017 todas as cobranças
terão de ter registro prévio ao pagamento, é obrigatório registrar via Remessa antes.

Eu trabalho com ASP.NET e lá temos o Boleto.Net porém lá o pessoal já está estruturando o framework e padronizando.

Também utilizo muito o PHP e tenho a seguinte dúvida:
Referente ao banco itaú, como faço pra fazer corbança registrada na carteira 109 ?

Refatorar Projeto

ola,
ja utilizei esse projeto em alguns outros projetos meus, até que funcionou legal,
mas pelo que eu vi, isso aqui ta uma bagunça, não sei de fato,
mas quem ai tem interesse em refatorar o projeto em outro Brenche, desde o 0.

Dúvida - Segunda via de um boleto gerado pelo banco

Boa tarde Pessoal,

Talvez não seja o melhor lugar para uma dúvida sobre esse assunto. Mais estou precisando aumentar meu conhecimento referente a 2ª via de um boleto que o banco enviou e registro.

Por exemplo hoje, sou obrigado a entrar no sistema do Banco e emitir essa segunda via, pois muitos clientes relatam não recebe a primeira via.

Qual é a ideia usar essa belíssima biblioteca criado pela comunidade, porém no meu caso apenas para segunda via.

O que isso implica?

  1. O banco que gera e ele é detentor do nosso número e registro
  2. Com o arquivo de retorno ou remessa do Banco, que me informa os titulos gerados e enviados. Eu tenho informações elas são suficiente para uma segunda via gerada por mim?

Agradeço muito a contribuição de todos!

Att

não receber após N dias de vencido

boa tarde pessoal,

meu chefe está pedindo para fazer adicionar a seguinte mensagem no boleto:

não receber após 5 dias de vencido.
após o vencimento cobrar 5% de multa.
após o vencimento cobrar 1% de juros ao dia.

porém é apenas texto fica a criterio do cara do caixa, ou da agencia e ele pode miuto bem alterar com algum hack já que é html/pdf.

O boleto continuara com o vencimento dia tal, preciso alterar alguma coisa no vencimento, ou fazer alguma gambiarra como funciona essa acepção a vencimentos

Criação de documentação e guidelines para o projeto

github wikis ( Opção 1 )

Para que um projeto de desenvolvimento em comunidade funcione, este precisa estabelecer guidelines com regras e procedimentos a serem seguidos tanto pelos membros da comunidade como também pelos administradores do projeto.

Os guidelines podem ser criados por meio de wikis https://github.com/drupalista-br/BielSystems/wiki

Aqui vai uma lista de alguns assuntos que precisam de guidelines:

  • Code standards e Best Practices
  • Regras para definir quando incrementar a numeração das versões e subversões do projeto
  • Regras para estruturar o wiki e criação / edição de páginas

Mais sobre como configurar as permissões de edição / adição do wiki em https://github.com/blog/774-git-powered-wikis-improved

How to Create Multiple Bank Slip at a Time

Hello,

ob_start();
$method='hsbc';
include $path . 'funcoes_' . $method . '.php';
include $path . 'layout_' . $method . '.php';
$content = ob_get_clean();

Above code use for fetch content based on method code,

Now i want to generate multiple slip at time, (Based on My Requirement )so i have write code this above in for loop but i getting error : some re-declare method.

Value of each slip different so i can not use include_once

Can you please tell me how to do?

Adequar fator de vencimento para a solução proposta aprovada pelo CENEGESC

Srs.,

O BACEN estabeleceu que em 12/03/2014 os sistemas emissores de boletos deverão estar em conformidade com a nova regra de cálculo do fator de vencimento, na qual fica estabelecido que o fator de vencimento retornará ao valor 1000 na data de vencimento 22/02/2025.

Ou seja:

Vencimento -> Fator
21/02/2025 -> 9999
22/02/2025 -> 1000

Alguém já deu início a essa implementação em algum funcoes_*.php?

Att.,

Edvan

registro

O código já atende boletos registrados e as novas regras que entrará em vigor em janeiro de 2017?

Nosso Numero

Boa Tarde!

Onde consigo a informacao do nosso numero,carteira, e afins?

Boleto sem data de vencimento

Salve,

Pessoal, tem algum modo para gerar um boleto sem data de vencimento?

Já testei passando o prazo como 0 ou -1 e nada, definindo a data de vencimento como 00/00/0000 e passando vazio e também nada, já que o Fator de vencimento não zera.

Obrigado.

Validação de campos

Estou avaliando (já estou testando na branch 2.x-dev) adicionar ao projeto validação de campos obrigatórios, numéricos e etc. Utilizando a biblioteca https://github.com/Respect/Validation para que fique mais fácil e correta a utilização da biblioteca. Opiniões? Pontuações?

Branch de orientação a objetos e testes

Na minha opinião o ideal é que o que for desenvolvido para a nova versão seja devidamente testado com o PHPUnit. Para não cairmos no mesmo problema do branch procedural em que fica muito complicado alterar ou refatorar devido a não saber se estamos quebrando algo.
E como o projeto está seguindo este caminho de orientação a objeto proponho os testes agora no inicio, para não precisar testar tudo no final como esta sendo feito no procedural agora, se não acabaremos caindo no mesmo problema de não ter testes.

Criar e organizar os branches ( master, 1.x-dev e 2.x-dev )

@israelst

Conforme minha sugestão em #6 (comment) , segue a rotina:

Eu tenho certeza que você conhece, talvez melhor do eu, como usar o git, a minha intenção aqui não é ensinar o padre a rezar mas colocar agente na mesma página ;)

Criando o branch 1.x-dev:

No seu terminal:

  1. Certifique-se que você está no branch "refactoring", caso não esteja, use o " git checkout refactoring "
  2. git branch 1.x-dev
  3. git checkout 1.x-dev
  4. git push origin 1.x-dev

Com isso você criou uma cópia do seu atual branch refactoring para 1.x-dev

Criando o branch 2.x-dev:

  1. Aprove o pull request #8
  2. No seu terminal, volte para o branch " refactoring " com git checkout refactoring
  3. Sincronize o seu branch remoto com o branch local, acho que " git pull origin refactoring " faz o serviço;
  4. git branch 2.x-dev
  5. git checkout 2.x-dev
  6. git push origin 2.x-dev

Com isso o seu branch 2.x-dev tem que ficar igual a https://github.com/drupalista-br/boletophp/tree/2.x-dev

Atualizando o branch master

Considernado que o Github automaticamente transforma o README.txt na página principal do branch e que o branch master é o branch de aterrissagem padrão do repositório, então a minha sugestão é que o branch master contenha apenas um arquivo README.txt com a descrição do projeto, instruções para download e instruções sobre como contribuir para o projeto.

Veja como ficou no meu fork https://github.com/drupalista-br/boletophp

Neste caso tudo que você precisa fazer é aprovar o pull request #10

Apangando o branch refactoring

Para apagar o branch local use " git branch -D refactoring "
Para apagar o branch remoto use " git push origin :refactoring "

Why portuguese

Olá pessoal, alguém sabe o por que esta recomendação de código em pt-br? Esse projeto só vai atender a realidade do Brasil?

Código de barras errado

Olá,

Estou usando este módulo (Plugin Woocommrce Boleto p/ Wordpress baseado neste módulo) e tudo parece funcionar bem, mas o código de barras gerado não coincide com o número do boleto. O que pode causar isto?

Já confirmei os dados com nosso Gerente e está tudo certo. É o boleto do Banco do Brasil. Apenas o código de barras vem errado.

Uso WP 3.9.2 e WooCommerce 2.1.12

Obrigado!

Componentes de Testes

  • SimplesTest
  • PHPUnit

Para o PHPunit verifique a lista abaixo.

  • instale e atualiza o PEAR

Carteiras Registradas Banco Itaú

Boa tarde. O projeto BoletoPHP para o banco Itaú, apenas funciona com as carteiras não registradas? Ou seja, com as carteiras 112, 378 e 191 não irá funcionar?

Publicar os releases em http://boletophp.com.br/#download

@israelst

Tem como você taguiar os releases das versões 1.x e 2.x? Exemplo: https://github.com/drupalista-br/Boleto/tags

Uma vez feito o taguiamento, poderia em seguinda mudar o link de download localizado em http://boletophp.com.br/#download para https://github.com/BielSystems/boletophp/tags?

Assim as pessoas terão uma lista com todos os releases para fazer o download.

Ainda na página http://boletophp.com.br/#download coloque um link para as páginas de instruções da versão 2.x https://github.com/BielSystems/boletophp/blob/2.x-dev/README.txt

Instruções de como taguiar podem ser encontradas em http://learn.github.com/p/tagging.html . Caso tenha alguma dúvida por favor deixe um comentário.

Grato,

Linha digitável e código de Barras randômico (Boleto caixa)

Pessoal, bom dia!

Estou com um boleto que foi gerado pela caixa e estou gerando o mesmo no meu sistema para confrontar.

Notei que ao gerar o boleto o a linha digitável fica mudando conforme eu atualizo, mas somente 3 números:

Correto:
10496.21632 90000.200049 00008.912479 1 68820000015000

Valores alternando
10496.21632 90000.200049 00008.912412 1 68820000015000
10496.21632 90000.200049 00008.912420 1 68820000015000
10496.21632 90000.200049 00008.912446 6 68820000015000

Ao ficar atualizando ele vai alternando esses 3 números e às vezes volta ao normal.

Isso é normal? Com os valores diferentes o boleto funcionará normalmente?

*Desculpem a ignorância, mas "sobrou" essa bucha na minha mão de um sistema que nunca tinha mexido. Valeu.

Agradecido.

Luis

Instalação via composer

Olá,

Vi que na branch 2.x já existe um arquivo do composer, mas não seria interessante publicar no repositório do packagist?

função_cef_sinco.php função formata_numero

Aconteceu comigo essa semana, valores acima de mil com formação BR 1.000,00 , a função do funcoes_cef_sinco.php não estava removendo o "." , então estava montando o codigo de barra e sequencia numérica errada.

Correção função

function formata_numero($numero,$loop,$insert,$tipo = "geral") {
if ($tipo == "geral") {
$numero = str_replace(",","",$numero);
while(strlen($numero)<$loop){
$numero = $insert . $numero;
}
}
if ($tipo == "valor") {
/*
retira as virgulas
formata o numero
preenche com zeros
*/

            $numero = str_replace(".","",$numero); // add essa linha para remover o "." do valor R$ br
    $numero = str_replace(",","",$numero);
    while(strlen($numero)<$loop){
        $numero = $insert . $numero;
    }
}
if ($tipo == "convenio") {
    while(strlen($numero)<$loop){
        $numero = $numero . $insert;
    }
}
return $numero;

}

layouts fora do padrão

Boa tarde a todos,

Todos os layouts que eu vi aqui estão sem identação, está com tags e atributos em uppercase e em muitos casos estão sem aspas duplas.
Pensei em fazer um fork aqui, corrigir e depois fazer o pull request, porém, eu não quero ter o trabalho de fazer e no final não ser aceito.

Por conta disto eu pergunto, posso fazer o fork e as correções e depois fazer o pull request sem problemas? Inclusive já até tenho um pronto já.

Grato

Estrutura de diretórios

Olá pessoal, tudo bem. Desejo começar a contribuir com o projeto. Eu baixei ele e fui fuçar (pois pensei por que não passar esse projeto para um PHP com OO e namespaces, coisa que o branch 2.x-dev faz) e achei estranho a forma como o branch 2.x-dev organiza seus diretórios... Antes de forkar o projeto eu fui atrás de libs populares do PHP como Twig, Doctrine e Composer por exemplo. E vejo que elas costuma seguir uma estrutura mais ou menos assim:

/
/bin
/lib (ou /src)
/lib/vendor
/testes (ou /test)

Existe algum por que de termos adotado a nossa estrutura atual???

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.