Vários serviços online têm valores diferentes para o ano máximo de validade, quando se trata de cartões de crédito.
Por exemplo:
- Baseecamp: +15 anos (2025)
- Amazônia: +20 anos (2030)
- Paypal: +19 anos (2029)
Qual é o máximo razoável aqui? Existem diretrizes oficiais?
date
max
credit-card
billing
Arte
fonte
fonte
Respostas:
Não há diretrizes oficiais, pois os emissores de cartões de crédito podem escolher cada um deles quando os cartões emitidos expirarem. De fato, eles emitem cartões por períodos cada vez maiores. Se você estiver tentando determinar até que ponto do futuro você deve acomodar as datas de validade, erre no lado seguro e dê a seus clientes muitos anos para escolher. Dessa forma, você prova seu aplicativo no futuro.
Para sua informação, muitos emissores de cartões de crédito não usam a data de validade para determinar se devem ou não aprovar uma compra com cartão de crédito. Portanto, se você estiver preocupado com o fornecimento de uma data incorreta, o processador terá a última palavra sobre se a transação é aprovada ou não, para que eu não me preocupe.
Julho de 2017 : tinha apenas um usuário final com um cartão que expiraria daqui a 50 anos.
fonte
Eu adicionaria dinamicamente + 15 a 20 anos ao ano da data atual OU forneceria uma entrada de caixa de texto para o ano (que pessoalmente acho mais rápido digitar os dois dígitos do que percorrer uma lista de anos).
fonte
Como limite superior teórico, proponho que você não precise considerar mais do que a vida útil esperada do titular do cartão. A Wikipedia faz isso em seus padrões editoriais para biografias de pessoas vivas :
Portanto, em seu código, procure o ano atual, adicione 115 e use-o como seu limite superior teórico para a data de validade do cartão de crédito. Você nunca precisará tocar nesse código novamente.
fonte
max
, caso a pessoa mais velha usasse o formulário quando completasse 116 anos ...: [Aqui está um trecho de código Javascript que você pode usar para exibir uma lista personalizável dos próximos anos para validação de CC:
fonte
Aqui está uma amostra dos principais varejistas on-line dos EUA:
fonte
Boa chamada, @Alistair.
Aqui está a geração do mês e do ano no ASP.NET MVC. Adicione isso ao seu viewmodel:
E isso na sua opinião:
fonte
Enquanto o segundo exemplo é executado duas vezes mais rápido que o primeiro, você ainda está obtendo a data e extraindo o ano dela 20 vezes em vez de 40 vezes. Um melhor desenrolar do loop é:
Isso será cerca de 20 vezes mais rápido que o exemplo duas vezes mais rápido e também aborda um bug menor no código original, pois o ano pode mudar de uma busca da data para a próxima, levando a resultados inesperados, embora neste caso inofensivos.
fonte
fonte
Se você deseja uma solução que não produza os anos de três dígitos com mais de 2100 anos, module a data; portanto, preencha com zero à esquerda por anos xx00-xx09 para não obter anos com um dígito.
Isso será muito importante a partir de 2080.
fonte
Depois de ler a validade superior do OP de 20 anos para a Amazon, escrevi esta solução simples em PHP:
Isso reduziu bastante o número dessas solicitações de ano novo para remover
last year
de um formulário.Uma versão mais enxuta do loop é executada ~ duas vezes mais rapidamente:
fonte
date('Y')
edate('y')
20 vezes cada um é bastante lento?fonte