$nossonumero_sem_dv = substr($dadosboleto["nosso_numero"], 0, 8); //dvs do nosso número $nossonumero_dv1 = modulo_11($nossonumero_sem_dv); $nossonumero_dv2 = modulo_11($nossonumero_sem_dv . $nossonumero_dv1, 10); $nossonumero_com_dv = $nossonumero_sem_dv . "." . $nossonumero_dv1 . $nossonumero_dv2; unset($nossonumero_dv1, $nossonumero_dv2); //conta corrente (sem dv) são 11 digitos $conta = formata_numero($dadosboleto["conta"], 11, 0); // Chave ASBACE 25 dígitos $Wtemp = formata_numero($nossonumero_sem_dv, 8, 0) . $conta . $dadosboleto["tipo_cobranca"] . $codigobanco; $chaveasbace_dv1 = modulo_10($Wtemp); $chaveasbace_dv2 = modulo_11($Wtemp . $chaveasbace_dv1, 7); $dadosboleto["chave_asbace"] = $Wtemp . $chaveasbace_dv1 . $chaveasbace_dv2; unset($chaveasbace_dv1, $chaveasbace_dv2); // 43 numeros para o calculo do digito verificador $dv = digitoVerificador("{$codigobanco}{$nummoeda}{$fator_vencimento}{$valor}" . $dadosboleto['chave_asbace']); $linha = "{$codigobanco}{$nummoeda}{$dv}{$fator_vencimento}{$valor}" . $dadosboleto['chave_asbace']; $dadosboleto["codigo_barras"] = $linha; $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); $dadosboleto["agencia_codigo"] = $conta; $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; $dadosboleto["nosso_numero"] = $nossonumero_com_dv; // FUNÇÕES // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco function digitoVerificador($numero) { $digito = modulo_11($numero); if (in_array((int) $digito, array(0, 1, 10, 11))) { $digito = 1; } return $digito;
$agencia = formata_numero($dadosboleto["agencia"], 4, 0); //conta é 6 digitos + 1 do dv $conta = formata_numero($dadosboleto["conta"], 6, 0); //dv da conta $conta_dv = formata_numero($dadosboleto["conta_dv"], 1, 0); //carteira é 2 digitos $carteira = $dadosboleto["carteira"]; //nosso número (sem dv) é 14 digitos $nnum = formata_numero($dadosboleto["nosso_numero"], 14, 0); //dv do nosso número $dv_nosso_numero = modulo_11($nnum); $nossonumero_dv = "{$nnum}{$dv_nosso_numero}"; //codigo_cliente é 6 digitos + 1 do dv $codigo_cliente = formata_numero($dadosboleto["codigo_cliente"], 7, 0); // 43 numeros para o calculo do digito verificador $dv = digitoVerificador("{$codigobanco}{$nummoeda}{$fator_vencimento}{$valor}{$cvt}{$codigo_cliente}{$zero}{$nossonumero_dv}"); // Numero para o codigo de barras com 44 digitos $linha = "{$codigobanco}{$nummoeda}{$dv}{$fator_vencimento}{$valor}{$cvt}{$codigo_cliente}{$zero}{$nossonumero_dv}"; //ok $nossonumero = substr($nossonumero_dv, 0, 14) . '-' . substr($nossonumero_dv, 14, 1); $agencia_codigo = $agencia . " / " . $conta . "-" . $conta_dv; $dadosboleto["codigo_barras"] = $linha; $dadosboleto["linha_digitavel"] = monta_linha_digitavel($linha); $dadosboleto["agencia_codigo"] = $agencia_codigo; $dadosboleto["nosso_numero"] = $nossonumero; $dadosboleto["codigo_banco_com_dv"] = $codigo_banco_com_dv; // FUNÇÕES // Algumas foram retiradas do Projeto PhpBoleto e modificadas para atender as particularidades de cada banco function digitoVerificador($numero) { $digito = modulo_11($numero);