Kredi Kartı Son Kullanma Tarihinde Maksimum Yıl


149

Kredi Kartları söz konusu olduğunda, çeşitli çevrimiçi hizmetlerin maksimum sona erme yılı için farklı değerleri vardır.

Örneğin:

  • Bazamp: +15 yıl (2025)
  • Amazon: +20 yıl (2030)
  • Paypal: +19 yaş (2029)

Buradaki makul maksimum değer nedir? Resmi yönergeler var mı?


1
Büyük çevrimiçi mağazalardaki tutarsızlık, resmi bir yönerge olmamasına dikkat çekmektedir.
Matt Ball

10
Basit bir metin girişi ile sona erme yılı isteyen siteleri seviyorum ...
Quentin

1
@Quentin, kullanıcı web tarayıcısının geliştiricisini nasıl kullanacağını bilmiyorsa, gönderimi önleyen hatalı doğrulamadan daha iyidir. araçlar.
Alastair

4
@Alastair - Yorumum alaycı bir şekilde tasarlanmamıştı.
Quentin

1
@ Yeterince adil adil. Üç nokta beni fırlattı. :-P Bir kullanıcı için, bu açıkça en az can sıkıcı bir uygulamadır, ancak bir geliştirme / iş dünyası perspektifinden bakıldığında, çok fazla hatalı girdi olacaktır (ve bu satış kaybına neden olabilir).
Ocak'ta Alastair

Yanıtlar:


65

Kredi kartı düzenleyicileri, düzenledikleri kartların süresi dolduğunda her birini seçebileceği için resmi bir kılavuz yoktur. Aslında daha uzun ve daha uzun süredir kart yayınlıyorlar. Son kullanma tarihlerini ne kadar süreyle kullanmanız gerektiğini belirlemeye çalışıyorsanız, güvenli tarafta hata yapın ve müşterilerinize seçim yapmak için uzun yıllar verin. Bu şekilde başvurunuzu gelecekte kanıtlayacaksınız.

FYI, birçok kredi kartı düzenleyicisi kredi kartı alımını onaylayıp onaylamamayı belirlerken son kullanma tarihini kullanmaz. Yanlış bir tarihin sağlanması konusunda endişe duyuyorsanız, işlemcinin işlemin onaylanıp onaylanmadığı konusunda nihai söz sahibi olacaktır, bu yüzden endişelenmeyeceğim.

Temmuz 2017 : Neredeyse 50 yıl sonra sona eren bir kartı olan bir son kullanıcıya sahiptim.


2
Doğru kod olmadan onaylayabilirler, ancak işlemlerinizde doğru kodlara sahip olmayan daha yüksek ücretler de alabilirler.
BVernon

Bu sadece AVS ve CVV doğrulaması için geçerlidir.
John Conde

Çoğu ihraççının işlemi yine de onaylayacağı doğrudur, ancak kullanıcıya kartındaki yıl için seçenek sunmamak, işlemle devam etmesini engelleyebilir. Sadece 50 yıl eklerdim ve uzun ve biraz sinir bozucu bir açılan olsa bile, hiçbir yayıncının sizi bu kadar uzun süre plastik tutmayacağını düşünmezdim.
Mauro

16

Ya geçerli tarihin yılına dinamik olarak + 15-20 yıl ekleyebilirim VEYA yıl için bir metin kutusu girdisi sağlarım (kişisel olarak iki haneyi yazmak için yıl listesini kaydırmaktan daha hızlı buluyorum).


7
cep telefonu kullanmadığınız sürece, belki. yıllar içinde kaydırmayı tercih edebilirsiniz. dikkate alınması gereken bir şey.
jedmao

10
İyi nokta @sfjedi ve çoğu tarayıcıda hala numarayı girebileceğinizi ve otomatik olarak seçileceğini unutmayın.
Kevin Wiskia

1
Metin girişi ile select arasında iyi bir nokta. Her zaman metin girişini tercih ettim, ancak son zamanlarda Android ve iOS'taki bazı UI testlerimle, bazı seçeneklerin biraz daha kolay göründüğünü buldum. Ancak, HTML5'in type = number kullanımı mobil cihazlarda sayısal klavyeyi hızla yukarı çeker, böylece işleri de kolaylaştırır. Doğrulama hatalarına geldiğini düşünüyor; önceden tanımlanmış seçim seçenekleriyle muhtemelen daha az hata.
Clint Pachl

Bunun bir mobil cihazda iyi çalışıp çalışmayacağından emin değilim, ama bir açılır menü / metin kutusu ne olacak? Bir değer girebilir veya normal gibi bir değer seçebilirsiniz.
Muffin Man

4

Teorik bir üst sınır olarak, kart sahibinin beklenen ömründen daha fazlasını düşünmenize gerek olmadığını öneriyorum. Wikipedia bunu yaşayan kişilerin biyografileri için yazım standartlarında yapıyor :

115 yıldan az bir süre önce doğan herhangi bir birey, güvenilir bir kaynak kişinin ölümünü teyit etmediği sürece bu politika kapsamındadır. En yaşlı kişilerde listelenmedikçe 115 yaşın üzerindeki insanların öldüğü varsayılır.

Kodunuzda, geçerli yıla bakın, 115 ekleyin ve bunu kredi kartı son kullanma tarihine ilişkin teorik üst sınırınız olarak kullanın. Bir daha asla bu koda dokunmak zorunda kalmayacaksınız.


2
Çok teorik olduğunu söyleyebilirim. Eski bir kartı olan biri, ilk doğum günleri ile doğdukları gün arasında bir zamanlar yayınlanmış olurdu. Ve sonra 115 yıl yaşamak zorunda kalacaklar!
jimp

40
Oğlum, sigara içtiğin güçlü şeyler!
Sanat

7
YÜZME o yaş giriş alanını kısıtlamak için Wikipedia'nın eski insanlar listesini ayrıştırmak için (anda) iyi bir fikir gibi görünüyordu düşünce maxonlar 116 döndü kez en yaşlı kişi formunu kullanılan ihtimale ...: [
Alastair

Mutlaka bir bireye bağlı olmayan bir şirket kartına ne dersiniz? Bu durumda, "teorik" bir sınır yoktur.
aaronbauman

3
Ancak @aaronbauman, ABD Yüksek Mahkemesi'ne göre, bir şirket kişidir. Bu yüzden kart sadece 115 yıldır iyi olmalı! :-)
Stonetip

1

CC doğrulaması için önümüzdeki yılların özelleştirilebilir bir listesini görüntülemek için kullanabileceğiniz bir Javascript kod snippet'i:

    var yearsToShow = 20;
    var thisYear = (new Date()).getFullYear();
    for (var y = thisYear; y < thisYear + yearsToShow; y++) {
      var yearOption = document.createElement("option");
      yearOption.value = y;
      yearOption.text = y;
      document.getElementById("expYear").appendChild(yearOption);
    }
          <label for="expiration">Expiration Date</label>
          <span id="expiration">
            <select id="expMonth" name="expMonth">
              <option disabled="true">Month</option>
              <option value="1">Jan</option>
              <option value="2">Feb</option>
              <option value="3">Mar</option>
              <option value="4">Apr</option>
              <option value="5">May</option>
              <option value="6">Jun</option>
              <option value="7">Jul</option>
              <option value="8">Aug</option>
              <option value="9">Sep</option>
              <option value="10">Oct</option>
              <option value="11">Nov</option>
              <option value="12">Dec</option>
            </select>
            <select id="expYear" name="expYear">
            </select>
          </span>


0

İşte ABD'nin en iyi çevrimiçi perakendecilerinden bir örnek:

RETAILER        WINDOW IN YEARS
Amazon          20
Walmart         10
Apple           NA (TEXT FIELD)
Home Depot      19
Best Buy        10
Target          NA (TEXT FIELD)
eBay            NA (TEXT FIELD)
Google          19

-1

İyi işti, @Alistair.

İşte ASP.NET MVC'de ay ve yıl nesli. Bunu görünüm modelinize ekleyin:

public IList<SelectListItem> Months = new List<SelectListItem>() { 
    new SelectListItem() { Text="Jan", Value="01" },
    new SelectListItem() { Text="Feb", Value="02" },
    new SelectListItem() { Text="Mar", Value="03" },
    new SelectListItem() { Text="Apr", Value="04" },
    new SelectListItem() { Text="May", Value="05" },
    new SelectListItem() { Text="Jun", Value="06" },
    new SelectListItem() { Text="Jul", Value="07" },
    new SelectListItem() { Text="Aug", Value="08" },
    new SelectListItem() { Text="Sep", Value="09" },
    new SelectListItem() { Text="Oct", Value="10" },
    new SelectListItem() { Text="Nov", Value="11" },
    new SelectListItem() { Text="Dec", Value="12" },
};
public IEnumerable<SelectListItem> Years
{
    get
    {
        return new SelectList(Enumerable.Range(DateTime.Today.Year, 15));
    }
}

Ve bu sizin görüşünüze göre:

<fieldset>
    <legend>Card expiration</legend>
    <div style="float: left;">
        <div class="editor-label">
            @Html.LabelFor(model => model.ExpirationMonth)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.ExpirationMonth, Model.Months)
            @Html.ValidationMessageFor(model => model.ExpirationMonth)
        </div>
    </div>
    <div style="float: left;">

        <div class="editor-label">
            @Html.LabelFor(model => model.ExpirationYear)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(model => model.ExpirationYear, Model.Years)
            @Html.ValidationMessageFor(model => model.ExpirationYear)
        </div>
    </div>
</fieldset>

-1

İkinci örnek, birinciden iki kat daha hızlı çalışmasına rağmen, tarihi alıyorsunuz ve yılı 40 kez yerine 20 kez çıkarıyorsunuz. Döngünün daha iyi açılması:

$StartDate=date('Y');
$EndDate=$StartDate+21;
for($i=$StartDate;$i<$EndDate;$i++){
    echo "<option value='".$i."'>".substr($i,2)."</option>\n";

Bu, iki kat daha hızlı örnekten yaklaşık 20 kat daha hızlı olacak ve aynı zamanda orijinal koddaki küçük bir hatayı da ele alacaktır, çünkü bu yıl, tarihin bir getirilmesinden diğerine beklenmedik şekilde sonuçlanmasına rağmen, bu durumda zararsız sonuçlar doğurabilir.


-2
<?php 
$y = gmdate("Y");
$x = 20;
$max = ($y + $x);
while ($y <= $max) {
echo "<option value='$y'>$y</option>";
$y = $y + 1;
}
?>

1
Sadece yukarıda belirtilen bir varyasyon, ay ve yıl seçimleri için seçim yapmak ve açılanlar yapmak için yıl eklemek daha iyidir. Kullanıcılar, yalnızca tek bir metin alanı sunulduğunda ay ve yıl varyasyonlarını farklı şekilde girme eğilimindedir.
Louis Ferreira

-2

Üç basamaklı 2100+ yıl vermeyen bir çözüm istiyorsanız, tarihi modüle etmelisiniz, bu nedenle tek basamaklı yıllar elde etmemek için xx00-xx09 yıl için önde gelen sıfır ile doldurmalısınız.

Bu 2080'den itibaren çok önemli olacak.

<?php
    for($i=0;$i<=20;$i++){
        $aktDate = sprintf("%02d", ((date('y')+$i)%100));
        echo "<option value=\"{$aktDate}\">{$aktDate}</option>\n";
    }
?>

-3

OP'nin Amazon için 20 yıllık üst geçerliliğini okuduktan sonra, PHP'de bu basit çözümü yazdım:

<select name='Expiry-Year'>
    <option value="">yy</option>
    <?php
    for($i=0;$i<21;$i++){
        echo "<option value='".(date('Y')+$i)."'>".(date('y')+$i)."</option>\n";
    }
    ?>
</select>

Bu, last yearbir formdan kaldırılması için bu yeni yıl taleplerinin sayısını büyük ölçüde azaltmıştır .

Döngünün daha yalın bir sürümü ~ iki kat daha hızlı çalışır:

<select name='Expiry-Year'>
    <option value="">yy</option>
    <?php
    for($i=date('Y');$i<date('Y')+21;$i++){
        echo "<option value='".$i."'>".substr($i,2)."</option>\n";
    }
    ?>
</select>

4
Aramanın date('Y')ve date('y')her birinin 20 katının oldukça yavaş olduğunun farkında mısınız?
Alexis Wilke

Nispeten değil, @Alexis ama sizin için iki kat daha hızlı çalışan bir sürüm ekledim. : P
Alastair

-6
<script type="text/javascript">
  var select = $(".card-expiry-year"),
  year = new Date().getFullYear();

  for (var i = 0; i < 20; i++) {
      select.append($("<option value='"+(i + year)+"' "+(i === 0 ? "selected" : "")+">"+(i + year)+"</option>"))
  }
</script> 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.