boa tarde edilson você poderia dar uma olhada no meu xml pois está apresentando o mesmo problema do alexandre mas ja olhei e verifiquei e não consegui encontrar o erro da chave:
function chave($cNF2,$nNF2, $serie2,$cUF,$CNPJ,$modd,$TpEmis,$dEmi){
$cNF2 = str_pad($cNF2, 8, '0',STR_PAD_LEFT);
$nNF2 = str_pad($nNF2, 9, '0',STR_PAD_LEFT);
$serie2 = str_pad($serie2, 3, '0',STR_PAD_LEFT);
$aamm = substr($dEmi,2,2) . substr($dEmi,5,2);
//monta chave sem digito
$idd = $cUF . $aamm . $CNPJ . $modd . $serie2 . $nNF2 . $TpEmis . $cNF2;
//cancula o digito verificador
$multiplicadores = array(2,3,4,5,6,7,8,9);
$i = 43;
while ($i >= 0) {
for ($m=0; $m<count($multiplicadores) && $i>=0; $m++) {
$soma_ponderada+= $idd[$i] * $multiplicadores[$m];
$i--;
}
}
$resto = $soma_ponderada % 11;
if ($resto == '0' || $resto == '1') {
$cDV = 0;
$idd = $idd . 0;
} else {
$cDV = (11 - $resto);
$idd = $idd . (11 - $resto);
}
return $idd;
}