Categorias

Aprenda a calcular o dígito verificador da chave de NFe

Com essa função é possível calcular o dígito verificador da chave de acesso da Nota Fiscal Eletrônica ou NFe.

Espero que seja útil.

function calcula_dv($chave43) {
    $multiplicadores = array(2,3,4,5,6,7,8,9);
    $i = 42;
    while ($i >= 0) {
        for ($m=0; $m=0; $m++) {
            $soma_ponderada+= $chave43[$i] * $multiplicadores[$m];
            $i--;
        }
    }
    $resto = $soma_ponderada % 11;
    if ($resto == '0' || $resto == '1') {
        return 0;
    } else {
        return (11 - $resto);
   }
}

$nfe = "3511030212322300017155001000115328186185490";
$nfe.=calcula_dv($nfe);

echo $nfe;