-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Bug
Descrição
Quando uma compra falha no pagamento, mas a falha ocorre depois de algum tempo, logo cliente tenta realizar o pagamento posteriormente pelo link oferecido no woocommerce. Usando outro cartão, há a soma de novas taxas e a informação de taxa do pagamento registrada no pedido é referente ao valor da taxa da última tentativa.
Como reproduzir
Considere a situação:
- Cliente seleciona os itens
- Vai para o Carrinho de Compras e vai finalizar a compra
- Na tela de checkout preenche dados de pagamento com método cartão de crédito parcelado
- Tenta finalizar a compra
- Pagamento é falho com algum atraso (recusado pelo banco)
- O cliente percebe e tenta pagar novamente pelo link
[main_url]/checkout/order-pay/[order_number]/?pay_for_order=true&key=[order_key]
- A tela de pagamento do pedido pelo link do woocommerce acima não desconsidera o valor da Taxa de Parcelamento na nova tentativa de pagamento. Logo o valor é acrescido no valor total e uma nova taxa é adicionada acima deste valor.
Neste momento, o valor pago neste novo pagamento com um cartão hábil é maior que o valor original por conta da taxa inicial. Porém o valor do campo meta_data de key _pagarme_card_tax não é atualizado corretamente permanecendo o valor calculado da segunda tentativa. Logo, o cliente paga a mais o valor da compra e nos dados do pedido os dados ficam errados não conferindo a duplicata com preço dos itens + frete + taxa.
Evidências
Total é R$ 416,65 e pagamento em 3x cujo total é R$ 429,15 -> Logo com taxa de parcelamento = R$ 12,50
Confere com valor na api:
Até aqui, tudo bem.
2ª Tentativa:
[main_url]/checkout/order-pay/[order_number]/?pay_for_order=true&key=[order_key]
Valor Cobrado é R$ 429,14 + Taxas
Logo, se o cliente paga à vista, seja por PIX ou Boleto ou cartão, o valor está acrescido da taxa inicial. Se o cliente tenta um novo parcelamento, o valor será acrescido de mais o valor desse novo parcelamento calculado sob o total de R$ 429,14. Ambos os casos, o cliente paga mais do que deveria.

