Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guilherme_z3web

Parcelamento PagSeguro - Taxa de Juros - Difícil

Recommended Posts

Muito bom, testei e funciona ok. Só fiz um ajuste para retornar os numeros formatados XX.XXX,XX

 

Segue o cod

 

   // função retorna um array com o valor da parcela e o valor total do parcelamento
public function getInfoParcela($valorTotal, $nParcelas, $taxa=1.99){
    if($nParcelas == 1)
        return Array('vParcela'=>number_format($valorTotal,2,'.',','), 'vFinal'=>number_format($valorTotal,2,'.',','));
    $taxa = $taxa/100; // Converte de 1,99% para 0,0199
    $cadaParcela = ($valorTotal*$taxa)/(1-(1/pow(1+$taxa, $nParcelas)));
    return Array(
                'vParcela'=>number_format(round($cadaParcela, 2),2,'.',','),
                'vFinal'  =>number_format(round($cadaParcela*$nParcelas, 2),2,'.',',')
        );
}

for($x = 1; $x <= 12; $x++){
        $parcela = getInfoParcela(1057.30, $x);
        echo "R$ 1057,30: {$x}x R$ {$parcela['vParcela']} = R$ {$parcela['vFinal']}<br />\r\n";
}

 

 

[]'s

 

Marcos Issler

 

Não sei se já é tarde para ressucitar este post, mas o fato é que ele é o primeiro resultado do Google, então vamos lá.

 

Um dos comentários acima diz: "Procure sobre a Tabela Price".

A Wikipedia fornece uma fórmula para a Tabela Price, que é a fórmula correta a ser utilizada. Ou seja, não precisa especificar cada quota "manualmente".

 

A fórmula é (em PHP):

<?php
function getInfoParcela($valorTotal, $nParcelas, $taxa=1.99){
   if($nParcelas == 1)
       return Array('vParcela'=>$valorTotal, 'vFinal'=>$valorTotal);
   $taxa = $taxa/100; // Converte de 1,99% para 0,0199
   $cadaParcela = ($valorTotal*$taxa)/(1-(1/pow(1+$taxa, $nParcelas)));
   return Array(
	'vParcela'=>round($cadaParcela, 2),
	'vFinal'  =>round($cadaParcela*$nParcelas, 2)
);
}

for($x = 1; $x <= 18; $x++){
$parcela = getInfoParcela(100, $x);
echo "R$ 100,00: {$x}x R$ {$parcela['vParcela']} = R$ {$parcela['vFinal']}<br />\r\n";
}
?>

 

Detalhes da função acima:

getInfoParcela($valorTotal, $nParcelas[, $taxa=1.99])

Sendo:

º $valorTotal - Valor total, em FLOAT. (ex: $valorTotal = 34.39)

º $nParcelas - Número final de parcelas, em INT. (ex: $nParcelas = 3)

 

Retorno:

º $ret = Array('vParcela'=>50.5, 'vFinal'=>102.99);

 

IMPORTANTE:

Nem sempre a conta vai fechar, mas é a informação que o PagSeguro passa...

Por exemplo, 100 reais em 2x, dá 2x de 51,50, que na verdade dá 103,00.

No entanto, a conta diz que o valor é de R$ 102,99.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.