+2

Boleto bancário ( Fácil e Simples ) - Parte 2

criado por Maykson A C Silva em 01/03/2005 10:42am
Bem continuando, vamos descobrir agora o Dígito Controlador e vamos gerar o Número do Código de Barras.

Para isto vamos precisar saber como é composto este número e as variáveis que vamos utilizar para compor

Variáveis:
$CodBanco - 001
$codMoeda - 9
$FatorVenc - 2802
$ValorDoc - 0000005326 
$NossoNum - 88888822222
$Agencia - 6666
$NumConta - 00077777
$Carteira - 18

O esquema do Número do Código de Barras:

CodBanco|CodMoeda|DC|FatorVenc|ValorDoc|NossoNum|Agencia|NumConta|Carteira

Porém o DC ainda não temos e precisamos dele tanto aqui quanto lá na Linha Digitável.

Para descobrir o DC devemos temporariamente compor o Número do Código de Barras sem ele, então teríamos:

$Partes = $CodBanco.$CodMoeda.$FatorVenc.$ValorDoc.$NossoNum.$Agencia.$NumConta.$Carteira;

Ou algo assim:

0019280200000053268888882222266660007777718

Certo? O Dígito Controlador é encontrado através do Modulo 11, ou seja, quando tivermos o valor da Soma, ao invés de dividir e multiplicar por 10, faremos por 11, vamos criar a função.

function Modulo11($Soma){
    $Resultado = floor($Soma/11);
    $Resto = $Soma - ($Resultado * 11);
    $Dv = 11-$Resto;
    if ($Dv == '10' || $Dv == '1' || $Dv == '0'){
       $Dv = '1';
    }
    return $Dv;
}

Comentários:

Mostrando 1 - 10 de 22 comentários
Olá, a senha devera estar e Branco, ou é 654321 ou 123456 pronto,, e veja que o phpboleto funciona muito bem para min, nos sites que utilizo..
23/09/2006 1:20pm (~10 anos atrás)

Gostaria de confirmar a função:
function Modulo11($Soma){
$Resultado = floor($Soma/11);
$Resto = $Soma - ($Resultado * 11);
$Dv = 11-$Resto;
if ($Dv == '10' || $Dv == '1' || $Dv == '0'){
$Dv = '1';
}
return $Dv;
}

pois se $resto for 0, ela retorna 11 com resultado do DV, nao deveria se 1?

Obrigado
27/04/2005 2:50pm (~11 anos atrás)

Patrick silva disse:
como faço para gerar segunda via do boleto bancário, bb.
18/04/2005 6:13pm (~11 anos atrás)

Primeiramente gostaria de dar os parabens pela explicação sussinta de como gerar a linha digitavel e o valor do codigo de barras que são as coisas q geralmente ficam mais obscuras na geração dos boletos.
Agora estou aguardando a 3 parte do arqtigo e gostaria sim que vc colocasse a disposição a 4 parte com o layout ..

Julio Cesar
24/03/2005 8:50am (~11 anos atrás)

darksaj disse:
kd a proxima parte???
e esse PHPBoleto eh zuado... alem d ser cheio d bugs, n consegui fazer ele conectar num banco PostgreSQL
21/03/2005 9:05am (~11 anos atrás)

Para instalar voce podera copiar todo o conteudo e modificar os arquivos de acesso ao BD, ou utilizar o instalador instalacao.html e dai por diante e so ir preenchendo e clicando.. Boa sorte.
16/03/2005 10:24pm (~11 anos atrás)

veja os que ja tenho modificados do phpboleto e faca um teste para ver o funcionamento http://www.viadascompras.com http://www.autoac.com.br http://www.megabolao.com todas versateis, pratica e funcionais,, Como nao consegui efetuar o upload devido ao tamanho disponibilizei para download em http://www.megabolao.com/downloads/phpboleto.zip e http://www.megabolao.com/downloads/phpboleto.exe muito bom e completo.
16/03/2005 10:21pm (~11 anos atrás)

Leandro disse:
Alguém sabe onde posso arrumar um script que faz a confirmação do pagamento do boleto bancario? Pois os bancos emitem um arquivo txt com as informação do boleto pago, tipo pegar quais boletos que já foram pagos complemento do sistema do boleto bancario
15/03/2005 3:58pm (~11 anos atrás)

Evandro Silva disse:
Ja estou aguardando há varios dias pela publicação da terceira parte e até agora nada.

Será que não daria pra você enviar pro meu email? evandro@planetarussas.com.br
15/03/2005 6:14am (~11 anos atrás)

Leonardo disse:
Muito bem explicado. E pensar que eu criava imagens PNG 8 bits do boleto em branco e alterava a formatação e geração dos dados no boleto para cada banco. Muitas dores de cabeça...
14/03/2005 4:30pm (~11 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)