wchagas/pagseguro-react

O Pagamento por cartão de crédito está funcionando?

Closed this issue · 3 comments

Estou testando em ambiente sandbox, e ao fazer o pagamento com cartão de crédito ele dá erro no Installment Value

installment value invalid value: 182.00

Já tentei diversas vezes e de diversas formas e ele acusa esse erro.
Obrigado

Acredito que o erro está relacionado a sua api. Por favor verifique se ela atende os seguintes requisitos.

O erro “installment value invalid value” pode ocorrer em algumas situações:

  1. O valor total passado no getInstallments for diferente da soma do total dos valores passados na chamada;
  2. O valor enviado no parâmetro maxInstallmentNoInterest for diferente do parâmetro noInterestInstallmentQuantity;
  3. Se os valores enviados na chamada não condiz com o retorno do getInstallments;

Nós somamos os campos extraAmount + shipping.cost + items[...].amount * items[...].quantity (veja), e usamos no método do pagseguro transparente PagSeguroDirectPayment.getInstallments para obter as possíbilidades de parcelamento (veja).

Outra questão é sobre o maxInstallmentNoInterest, ele deve ser igual ao parâmetro noInterestInstallmentQuantity que você envia para a api pagseguro. Se maxInstallmentNoInterest for 0, então você não deve enviar o noInterestInstallmentQuantity. Estou desenvolvendo uma lib em nodejs para abstrair essas regras. Veja como resolvi essa questão

Se não funcionar cola mais informações aqui:

  • Payload do pagseguro-react (dados que você envia pra sua api)
  • Request para api do pagseguro
  • Response do pagseguro

Valeu pela contribuição.

Ahh sim, valeu pelo toque cara !! Percebi que estava fazendo besteira aqui... tinha tirado o shipping cost pra teste e não tava sabendo disso aqui :
extraAmount + shipping.cost + items[...].amount * items[...].quantity
Agora rolou !
Muito Obrigado pela ajuda 😄

Vou adicionar esse detalhe à documentação. (Se puder da um like no repo e compartilha com a galera pra dar um apoio ao projeto 😁 )

Valeu Fabricio, qualquer coisa dá um toque.

Abraço