Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

[]Boleto Itaú (nosso número)

  • Por favor, faça o login para responder
6 respostas neste tópico

#1 paulo_roll

paulo_roll
  • Membros
  • 292 posts

Postado 14 abril 2007 - 19:37

Boa noite.
já estudei tudo que tem direito sobre boleto bancário.
mas ouvi dizer que o nosso número tem um padrão.
gostaria de saber que padrão é esse do banco itaú para carteira
não registrada.
para gerar esse número, fica ameu critério ou a critério do banco?

  • 0

#2 dataset

dataset

    DataSet

  • Membros
  • 578 posts

Postado 14 abril 2007 - 21:43

Boa noite meu caro amigo... bom, se você ja estudou tudo sobre boleto, está de parabéns.

Sobre o nosso número, como o nome já diz, é um numero que é nosso, ou seja, uma quantidade de campos destinado ao nosso controle, podemos colocar o que quizer-mos nessa quantiade de caracteres, portanto que seja numerico. Ex. Ele pode ser a tua chave primária da tabela de títulos, pode ser o codigo do usuário, entao quando o boleto é pago no banco, você vai receber o arquivo RETORNO.txt, esse numeo vai vir e daí você sabe quem pagou.

Se você não fizer nenhum tipo de controle no arquivo de retorno, podes colocar o nosso numero como 0012345 (Observar a qtd de caracteres para o N.N que o banco libera.)

Se o banco te liberou 8 caracteres para o N.N, é o caso do Banrisul, eu preencho com zeros a esquerda, pois a chave da minha tabela títulos está em 5. Ex: 00026324. Isto é regra.

Agora basta achar os dígitos verificadores e concatenar no final do N.N, colocar na função que gera o código de barras e deu pra bola.

Os digitos verificadores são calculados pelo Módulo 10 e Módulo 11, cada banco decide como vai ser a regra pra geração desses dígitos.

Na sua pergunta, você incluiu uma frase dizendo o N.N tem um padrão, realmente tem, mas os digitos verificadores são defenidos pelo banco, e a quantidade de caracteres também.

Esse numero é seu, para controle.

Qualquer dúvida, posta aí.
  • 0

#3 paulo_roll

paulo_roll
  • Membros
  • 292 posts

Postado 16 abril 2007 - 13:09

Obrigado pela dica.
mas aí ficou mais uma dúvida.
Conversei com o gerente e eles não fornecem a página asp
com esses cálculos de módulos para gerar o código de barras.
mas eu achei um boleto itaú no www.superasp.com.br (e na busca digitei boleto).
1 - como saber se a rotina que gera o código de barras é válido?
2 - onde recorrer para achar uma página asp de outros bancos com essa rotinas?

a única coisa que sei fazer é configurar e não criar um gera boleto desde o zero. creio que
seja assim com a maioria.
agradeço pela atenção.

  • 0

#4 dataset

dataset

    DataSet

  • Membros
  • 578 posts

Postado 16 abril 2007 - 14:15

Bom, no manual de boletos do banco que você pegou tem. Como comentei, cada banco tem uma certa regra. Pra que serve essa regra ? Pra ser diferente do outro banco. Só pra isso, mas nada.

Dá uma olhada no algorítmo dos Módulos que você pegou nesse código do superasp. Dependendo da documentação que você pegou do banco, tem que fazer umas atualizações, pois de tempos em tempos alguns bancos mudam a rotina.

Mas se você sabe programar é mamão com açúcar. Basta fazer um algorítmo que chegue ao resultado que eles querem.

Se você tem dúvidas, coloca aí pra gente fazer o download do manual, e coloca só os 2 Módulos que possam ter no código que você pegou. Daí faço uma análise pra ti e vejo se tem que fazer alguma alteração.

OBS: Não coloca o programa inteiro pra não encher de código, beleza ?

Valeu.
  • 0

#5 paulo_roll

paulo_roll
  • Membros
  • 292 posts

Postado 16 abril 2007 - 16:33

Bem. Eu não sei dizer qual parte do código você está se referindo,
mas o código a seguir é do funcoes.inc
seria possível você me enviar o boleto do itaú e de outros bancos para meu e-mail?
paulo_roll@hotmail.com
tenho que apresentar boletos válidos na empresa para coseguir o emprego amanhã ou depois de amanhã.
agradeço desde já a atenção.

[codebox]<%
Function I25Encode(StringNumber)
Dim asPattern(), sSTART, sSTOP

Redim asPattern(10)

' Padrões de Inicio e fim
sSTART = "NNNN"
sSTOP = "WNN"

' Padrões do código de barras
asPattern(0) = "NNWWN"
asPattern(1) = "WNNNW"
asPattern(2) = "NWNNW"
asPattern(3) = "WWNNN"
asPattern(4) = "NNWNW"
asPattern(5) = "WNWNN"
asPattern(6) = "NWWNN"
asPattern(7) = "NNNWW"
asPattern(8) = "WNNWN"
asPattern(9) = "NWNWN"

If (Len(StringNumber) Mod 2) <> 0 Then
' O número de caracteres no
' argumento devem ser diferentes
I25Encode = ""
Exit Function
End If


If Not IsNumeric(StringNumber) Then
' Argumento deve ser numérico
I25Encode = ""
Exit Function
Else
If (InStr(StringNumber, ".") <> 0) Or _
(InStr(StringNumber, ",") <> 0) Then
' O argumento é numero mais contem
' caracteres invalidos para nós
I25Encode = ""
Exit Function
End If
End If

Dim sEncodedSTR, sUnit
Dim iCharRead, sDigit1, sDigit2, i

sEncodedSTR = ""
For iCharRead = 1 To Len(StringNumber) Step 2
sDigit1 = asPattern( Asc( _
Mid( StringNumber, iCharRead, 1 ) ) - 48 )
sDigit2 = asPattern( Asc( Mid( _
StringNumber, iCharRead + 1, 1 ) ) - 48 )

sUnit = ""

For i = 1 To 5
sUnit = sUnit & Mid( sDigit1, i, 1 ) & _
Mid( sDigit2, i, 1 )
Next

sEncodedSTR = sEncodedSTR & sUnit
Next
I25Encode = sSTART & sEncodedSTR & sSTOP
End Function

Function Formata_Data(strData)
dia = day(strdata)
mes = month(strdata)
ano = year(strdata)
if dia < 9 then dia = "0" & dia
if mes < 9 then mes = "0" & mes
Formata_Data = dia & "/" & mes & "/" & ano
end function

Function Calculo_DV10(strNumero)
fator = 2
total = 0
For i = Len(strNumero) To 1 Step -1
numero = Mid(strNumero, i, 1) * fator
If numero > 9 Then
numero = Cint(Left(numero, 1)) + Cint(Right(numero, 1))
End If
total = total + numero
if fator = 2 then
fator = 1
else
fator = 2
end if
Next
resto = total Mod 10
resto = 10 - resto
if resto = 10 then
Calculo_DV10 = 0
else
Calculo_DV10 = resto
end if
End Function

Function calcula_DV_CodBarras(sequencia)
fator = 2
total = 0
For i = 43 To 1 step -1
numero = Mid(sequencia, i, 1)
If fator > 9 Then
fator = 2
End If
numero = numero * fator
total = total + numero
fator = fator + 1
Next
resto = total mod 11
resultado = 11 - resto
If resultado = 10 Or resultado = 0 Then
calcula_DV_CodBarras = 1
Else
calcula_DV_CodBarras = resultado
End If
End Function

Function Monta_CodBarras()

database = CDate("7/10/1997")
fator = DateDiff("d", database, dt_venc)
valor = Int(valor_doc * 100)
while len(valor) < 10
valor = "0" & valor
wend

codigo_sequencia = banco & moeda & fator & valor & carteira _
& nossonumero & dv_nossonumero & agencia & conta & dv_conta & "000"

dvcb = calcula_DV_CodBarras(codigo_sequencia)
Monta_CodBarras = Left(codigo_sequencia, 4) & dvcb & Right(codigo_sequencia, 39)
End Function

Function Linha_Digitavel(sequencia_codigo_barra)
seq1 = left(sequencia_codigo_barra,4) & mid(sequencia_codigo_barra,20,5)
seq2 = mid(sequencia_codigo_barra,25,10)
seq3 = mid(sequencia_codigo_barra,35,10)
seq4 = mid(sequencia_codigo_barra,6,14)
dvcb = mid(sequencia_codigo_barra,5,1)

dv1 = Calculo_DV10(seq1)
dv2 = Calculo_DV10(seq2)
dv3 = Calculo_DV10(seq3)

seq1 = Left(seq1 & dv1, 5) & "." & Mid(seq1 & dv1, 6, 5)
seq2 = Left(seq2 & dv2, 5) & "." & Mid(seq2 & dv2, 6, 6)
seq3 = Left(seq3 & dv3, 5) & "." & Mid(seq3 & dv3, 6, 6)


Linha_Digitavel = seq1 & " " & seq2 & " " & seq3 & " " & dvcb & " " & seq4
End Function%>[/codebox]
  • 0

#6 dataset

dataset

    DataSet

  • Membros
  • 578 posts

Postado 16 abril 2007 - 19:33

Boa noite...

Entao .... no codigo q você me enviou tem essa função
Function Calculo_DV10(strNumero)

Veja, ela calcula o DV (Dígito Verificador)

e tem essa outra que eu tenho quase certeza que é referente ao Módulo 11
Function calcula_DV_CodBarras(sequencia)

Eu tenho o código que gera o boleto do Itaú, e é exatamente igual. Também peguei no superasp.
Agora basta trocar os dados que forem necessários, abrir uma conta com o serviço de cobrança direta. Gerar um boleto de um real, ir lá e pagar o título e ver se entrou na conta.

Estou montando o boleto do Banrisul, vou publicar pro pessoal quando eu fizer o teste de pagar e ver se no arquivo retorno veio o crédito. Mas vai levar mais alguns dias ainda. Quem sabe na proxima segunda vou ver se funcina.

Se eu puder te ajudar em mais alguma coisa, posta aí.

Falow
  • 0

#7 paulo_roll

paulo_roll
  • Membros
  • 292 posts

Postado 17 abril 2007 - 15:45

OBRIGADO PELA AJUDA DATASET.
então esse boleto do itaú está exato?
somente basta manipular as variáveis da página boleto.asp?

agradeço, vou apresentar isso hoje no emprego e eles vão
ficar mais confiantes em mim graças a sua ajuda e a do fórum. tive que ler tudo sobre boletos,
mas quanto a página funcoes.inc, preciso depois entender o funcionamento de cada função, mas de
imediato era saber se esse boleto itaú roda. eu não tenho como testar outros boletos ainda,
porque não tenho conta em nenhum banco.
se você quiser mais boletos, tem no site www.amigoswm.com (e digite na busca virtuastore).
lá tem boleto itaú, bradesco e caixa econômica, nesse script da loja e as configurações ficam no config.asp
e a página boleto_do_banco.asp.
valeu...

  • 0




Publicidade

/ins>