vindi / vindi-woocommerce

Plugin Vindi para pagamento recorrente no Woocommerce
https://vindi.com.br
GNU General Public License v3.0
6 stars 12 forks source link

Formatação de data de expiração no front-end #118

Closed devaguia closed 1 year ago

devaguia commented 2 years ago

Alguns clientes reclamaram de erros durante a validação de compras feitas no cartão de crédito. O erro reportado é o seguinte:

[{"id":"invalid_parameter","parameter":"card_expiration","message":"não pode ficar em branco"},{"id":"invalid_parameter","parameter":"card_expiration","message":"não é uma data válida"}

Atualmente a formatação da data de expiração é feita no front-end, utilizando javascript e suas bibliotecas de mascara. Como essa formatação não é visual(não é visível para o usuário), seria mais seguro fazê-la no back. A formatação em questão é a separação do mês em ano em propriedades diferente. Exemplos:

Como é preenchido: "09/22" Como é enviado para o back: { "vindi_cc_yearexpiry": "2022", "vindi_cc_monthexpiry": "09" }

Se algo der errado ou se houver alguma incompatibilidade com outros scripts da página, o valor enviado para o back será vazio e isso afetará na validação do cartão.

Seria mais interessante enviar essa data como "09/22" e no back-end transformar o ano em 2022.

devaguia commented 2 years ago

Adicionei uma nova verificação onde caso o campo ‘vindi_cc_monthexpiry’ ou o ‘vindi_cc_yearexpiry’ não sejam recebidos corretamente para o back, o plugin também pega o campo ‘vindi_cc_expiry_date’ e faz a transformação da data com o formato de inserção(MM/AA) para o formato necessário para envio(MM/AAAA).

Dessa forma o plugin vai continuar com o mesmo comportamento, mas vai ter mais uma verificação e blindagem, caso os scripts do front venham a falhar.