Sollte ich das CreditCardAttribute zu validieren Kreditkarte zahlen?

Sollte ich verwenden Microsoft CreditCardAttribute zu validieren Kreditkartennummern wie so?

[Required, CreditCard]
public string CreditCardNumber { get; set; }

Oder sollte ich das payment-gateway umgehen, oder etwas anderes tun? Ich Frage nach der Entdeckung von einigen Kunden nicht möglich, senden Sie Zahlung mit Ihrer Kreditkarte Informationen. Zum Glück, ich war in der Lage, mit einem dieser Kunden, und fand, dass Ihre Visa-Karte wurde verarbeitet, ohne ein problem nach dem entfernen der CreditCardAttribute.

Teil, diese Frage ist rhetorisch, aber ich würde gerne davon profitieren andere Entwickler die Gedanken und Erfahrungen, und machen andere Entwickler bewusst die Risiken bei der Verwendung der CreditCardAttribute Frage.

  • Ein link auf die Dokumentation des Attributs in Frage wäre sehr hilfreich.
  • Hier. Schnelle google-Suche geht ein langer Weg.
  • Diese Frage bietet einen Einblick in, wie die CreditCardAttribute überprüft die Eingabe.
  • Es wäre interessant zu hören, was anders war, dass bestimmte Kunden die Karte mit der Zahl...
  • und danke für den link zu mehr info. Was ich glaube, was ich entdeckt habe ist, dass selbst wenn der Algorithmus ist zu 100% korrekt einige Kreditkarten, die einfach nicht passieren Validierung, weil Sie nicht entwickelt wurden, entsprechen dem Muster, das Luhn überprüft wird, und das ist sehr schlimm, wenn es bedeutet, dass Einnahmen verloren gehen.
  • zu meiner überraschung ist der Kunde, mit dem ich zusammenarbeitete, hatte eine Visa-Kreditkarte. Ich war die Hälfte erwartet eine weniger typische Kreditkarte, vielleicht American Express oder Discover. Leider weiß ich nicht viel darüber hinaus, vielleicht, Ihre Karte war eine Visitenkarte, und für einige Grund-Geschäft-Visa-Karten nicht entsprechen Luhn. Ich bin hoffentlich jemand, der weiß mehr über credit card validation im Allgemeinen wird in der Lage sein zu Wiegen.
  • Es geht nicht um die Geschwindigkeit googeln, aber über die Vollständigkeit der Frage.
  • BTW ich habe noch einen link zu der Frage. Danke Ondrej für Fragen und Josh für die Bereitstellung der Verbindung.
  • Du hast Recht, habe nicht zu bedeuten, sound snarky.
  • Wenn Sie verwenden, um zu überprüfen, würde ich empfehlen, sich auf der gateway-Plattform müssen Sie integriert werden, um für card validation. Sie haben in der Regel eine direkte integration der Prozessoren, die überliefern, einen " BIN range-Datei auf einer regelmäßigen basis zu ermöglichen, für eine genauere Prüfung.
  • das ist, was ich beschlossen habe zu tun, für jetzt, weil es scheint mehr zuverlässig, aber PaulG ist behauptet in seiner Antwort, dass der Algorithmus sollte auf so ziemlich jede Kreditkarte. Also ich bin immer noch Fragen, was falsch gelaufen ist. Vielleicht habe ich einen Fehler gemacht. Ich sehe Sie schon im Geschäft für 5 Jahre. Haben Sie lief in Probleme mit Kreditkarte sanity-check nicht vorbei?
  • Ehrlich gesagt, ich habe immer Verlass auf meine Gateway-team zu ziehen, um die BIN-Dateien und führen die Validierung für bestimmte Transaktionen (FSA/IIAS), sonst machen wir nur eine einfache Zählung der Ziffern und lass den Prozessor die Arbeit machen. Ich glaube nicht eine 3rd-party (MS in diesem Fall), um eine zuverlässige überprüfen, da es sich schnell ändern kann und oft zu Zeiten. Ich habe ein paar mal gesehen, wo eine Karte, die Marke ist falsch abgeleitet oder überhaupt nicht, wenn die BIN-Datei war alt oder beschädigt. Case in point, die vor kurzem PayPal gekauft, BIN reicht von Entdecken Sie und werden schließlich Ihre und nicht mehr eine Disc-Marke.
  • Du hast mich falsch verstanden. Dies ist nicht BIN ein range-check, nur ein luhn digit zu überprüfen. (Für den Datensatz ich BIN damit einverstanden, dass die Reichweitenkontrolle ist sinnlos, es sei denn, Sie haben Zugang zu den neuesten IIN Datenbank von der ABA. Sobald der luhn digit ist validiert, ist es am besten, senden Sie es an den Prozessor, als ich sagte in meiner Antwort unten)
  • Ich Stimme absolut mit dir, ich wollte nur sagen, dass ich nicht auf Sie berufen, luhn überprüft, es sei denn absolut notwendig, weil der false positives, und erlaubte stattdessen die Transaktion fehlschlägt oder (aus Gründen der Kosten) tokenisierung der Karte und verwenden der gateway-überprüfen Sie auf die Karte. Ich weiß, dass mein gateway team hat eine sehr umfangreiche Karte Gültigkeitsprüfung (luhn, bin Bereich, etc) und ich möchte nicht den code duplizieren. Fast alle Kreditkarten bestehen würde, die luhn, aber ich sagte, einige nicht-Karte zahlen würde.
  • Sie sagte, "Fast alle Kreditkarten bestehen würde, die luhn'. Nur schwarz und weiß über diese... weißt du, alle Kreditkarten, die fail eine luhn-check, aber ansonsten gültige? In meinen 10+ Jahre Erfahrung, unzählige Millionen von Transaktionen, die ich noch nie gesehen. Und das ist das, was Jeremy ist zu fordern, finden Sie hier.
  • nur eine Diners-Club-card Bereich und eine kleine Marke in China gekauft wurde von UnionPay (ich vergesse den Namen). Die Anzahl der Karten, die nicht-pass ist so klein, ich würde Zustimmen, zu sagen, es ist eine gültige überprüfen. Ich bin nur der Erziehung das mögliche Problem von false positives.
  • und PaulG ist es klingen wie es ist Konsens, dass eine luhn-check failure, wie das, was ich denke, dass ich erlebt habe, ist äußerst unwahrscheinlich. Ich bin wirklich dankbar für all den input von Menschen, die haben das getan, für eine Weile! Es ist leider ein bisschen ein Gespenst jagen, da die Beibehaltung der Kreditkarte zahlen, ist eine große no-no, aber Sie haben mich dazu inspiriert, nehmen Sie einen Blick an, wie ich bin, mit der CreditCardAttribute und der JavaScript, die Sie aussendet. Vielleicht verwende ich es in einer unerwarteten Weise.
  • Gut @PaulG und Ian schaute ich in JavaScript-Validierung wird das Problem aber die CreditCardAttribute emittiert keine. So, dass ist außer Frage. Ich schaute auf die Transaktionen im PayPal-portal und verifiziert, dass der Kunde habe eine Visa-Karte, und es viele Male vor der CreditCardAttribute an Ort und Stelle war und nachdem ich es entfernt.

InformationsquelleAutor Jeremy Cook | 2015-04-27
Schreibe einen Kommentar