【问题标题】:How do I validate Credit Card and Bank Account numbers? [closed]如何验证信用卡和银行帐号? [关闭]
【发布时间】:2012-09-27 12:50:10
【问题描述】:

我知道有很多与此主题相关的讨论,例如Credit Card validation: can Card Name contain non-ASCII characters?

我想问这个问题的原因是因为人们可以在一个地方找到所有信息。

我发现了什么(如果/我错了,请纠正我):

标题 - 长度 - 格式

信用卡号 - 最小 13,最大 19 - 数字

信用卡名称 - MAX 26 - 字母数字(首字母后不能包含点?)

银行帐号(顺便说一句,我在印度)- MIN 11,MAX 15 - 数字

银行帐户名称 - 抱歉,不知道 - 字母数字? (再次,不知道)

请提供答案,以帮助需要处理财务数据的人。

【问题讨论】:

  • 伙计们,请不要关闭这个。您不知道互联网上的卡片验证信息有多么分散。搜索一下就知道了
  • 据我所知,你的信用卡号码是对的。
  • 问题是您无法自信地验证这一点。卡号和其余数据的定义随着时间的推移而变化。不经常,但足以在几年后在生产中产生火灾,而你最不希望发生这种情况。当你知道它的定义时,你就可以验证它。如果定义不满足,则无效。问题是银行是知道这个定义的人,所以让他们决定什么是有效数字,什么不是。你可以做一些应该非常宽松的基本验证。

标签: validation credit-card onlinebanking


【解决方案1】:

阅读这篇文章:link

这是关于生成信用卡号码,但它有助于确定信用卡是否有效。

这些是将信用卡公司与其信用卡号相关联的规则:

Visa = 4XXX - XXXX - XXXX - XXXX
MasterCard = 5[1-5]XX - XXXX - XXXX - XXXX
Discover = 6011 - XXXX - XXXX - XXXX
Amex = 3[4,7]X - XXXX - XXXX - XXXX
Diners = 3[0,6,8] - XXXX - XXXX - XXXX
Any Bankcard = 5610 - XXXX - XXXX - XXXX
JCB =  [3088|3096|3112|3158|3337|3528] - XXXX - XXXX - XXXX
Enroute = [2014|2149] - XXXX - XXXX - XXX
Switch = [4903|4911|4936|5641|6333|6759|6334|6767] - XXXX - XXXX - XXXX

【讨论】:

  • 实际上,我已经确定了那部分。我在谈论卡/银行帐户名称/号码验证
  • 磁串中只存储了账户持有人的姓名。卡关联的银行账号,单凭信用卡无法得知。该信息是谨慎的。 @th3an0maly
  • 是的,我指的是一般银行账户,即如果我要验证银行帐号(不一定与卡关联)
  • 银行卡在 2006 年被撤销。如果您必须存储历史数据,可以,但不要接受 5610... 进行任何新交易。
  • 这里有一些很好的信息,但也有很重要的错误信息。并非所有卡都有 16 位数字。特别是,甚至不是所有的 Visa 卡都有 16 位数字。在欧洲,普通的 Visa 卡可以有 fewer than 16 位,而V Pay range 可以有 16 位以上。就验证位数而言,您应该只应用 ISO 标准 7812-1 中的 19 位限制。
猜你喜欢
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2011-11-16
  • 2014-08-03
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 2014-01-25
相关资源
最近更新 更多