it-swarm.com.de

Maximales Jahr bis zum Ablaufdatum der Kreditkarte

Verschiedene Online-Dienste haben unterschiedliche Werte für die maximale Gültigkeitsdauer, wenn es um Kreditkarten geht.

Zum Beispiel:

  • Basislager: +15 Jahre (2025)
  • Amazon: +20 Jahre (2030)
  • Paypal: +19 Jahre (2029)

Was ist das vernünftige Maximum hier? Gibt es offizielle Richtlinien?

145
Art

Es gibt keine offizielle Richtlinie, da die Kreditkartenherausgeber jeweils auswählen können, wann die von ihnen ausgestellten Karten ablaufen. Tatsächlich geben sie Karten immer länger aus. Wenn Sie feststellen möchten, wie weit Sie die Verfallsdaten in die Zukunft richten sollten, sind Sie auf der sicheren Seite und geben Ihren Kunden viele Jahre Auswahl. So sichern Sie Ihre Bewerbung zukunftssicher.

Zu Ihrer Information, viele Kreditkartenherausgeber verwenden das Ablaufdatum nicht, wenn sie entscheiden, ob Sie einen Kreditkartenkauf genehmigen möchten oder nicht. Wenn Sie also besorgt sind, dass ein falsches Datum angegeben wurde, hat der Bearbeiter letztendlich die endgültige Entscheidung darüber, ob die Transaktion genehmigt wird oder nicht.

Juli 2017 : Hatte gerade einen Endbenutzer mit einer Karte, die in fast 50 Jahren abgelaufen ist. 

62
John Conde

Ich würde dem aktuellen Datumsjahr entweder dynamisch + 15-20 Jahre hinzufügen OR und eine Textbox-Eingabe für das Jahr bereitstellen (die ich persönlich schneller finde, um die beiden Ziffern einzugeben, als durch eine Liste von Jahren zu scrollen).

16
Bryan Denny

Als theoretische Obergrenze schlage ich vor, dass Sie nicht mehr als die erwartete Lebensdauer des Karteninhabers berücksichtigen müssen. Wikipedia macht dies in ihren redaktionellen Standards für Biografien lebender Personen :

Personen, die vor weniger als 115 Jahren geboren wurden, fallen unter diese Richtlinie, es sei denn, eine zuverlässige Quelle hat den Tod der Person bestätigt. Personen über 115 Jahre gelten als tot, sofern sie nicht bei den ältesten Personen aufgeführt sind.

Suchen Sie also in Ihrem Code das aktuelle Jahr nach, addieren Sie 115 und verwenden Sie dies als theoretische Obergrenze für das Ablaufdatum Ihrer Kreditkarte. Sie müssen diesen Code nie wieder berühren.

4
MetaEd

Hier ist ein Javascript-Code-Snippet, mit dem Sie eine anpassbare Liste der nächsten Jahre für die CC-Validierung anzeigen können:

    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>

1
abd3721

Während das zweite Beispiel doppelt so schnell wie das erste ausgeführt wird, erhalten Sie immer noch das Datum und extrahieren das Jahr 20-mal statt 40-mal. Ein besseres Abrollen der Schleife ist:

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

Dies ist etwa 20-mal schneller als das doppelt so schnelle Beispiel und behebt auch einen geringfügigen Fehler im ursprünglichen Code, da sich das Jahr von einem Abruf des Datums zum nächsten ändern kann, was zu unerwarteten, in diesem Fall harmlosen Ergebnissen führt.

0
user3347790

Guten Anruf, @Alistair. 

Hier ist die Generierung von Monat und Jahr in ASP.NET MVC. Fügen Sie dies Ihrem Ansichtsmodell hinzu:

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));
    }
}

Und das zu Ihrer Ansicht:

<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>
0
Rap