如何确定一个人输入的卡是借记卡、支票卡还是信用卡?
我只关注美国的网络支付。这是用于公用事业计费。
我见过的用于检查卡类型的最佳代码是http://www.eflo.net/mod10.htm上的 Javascript 页面- 可以根据您的要求区分 VISA 借记卡和信用卡,还有许多其他变体的卡片。我很容易将此代码移植到 C#。
您的另一种选择是获取 BIN(银行识别号)数据库的副本,该数据库是所有卡前缀、卡发行和卡验证要求(例如到期日期、发行编号、开始日期)的列表。一些 BIN 来源;
不知道你需要什么,但我知道的所有 POS 系统都要求用户指定卡的类型。
您可以将借记卡作为信用卡运行 - 无需密码
您可以将信用卡作为借记卡运行 - 输入您的密码,交易将被视为预借现金
Wiki有贷记与借记前缀的列表
但是,IIRC 某些卡可根据具体情况同时用作信用卡和借记卡。
您可能已经通过您的支付网关发现了这一点,但是卡(借记卡、信用卡、自定义 [例如商店卡] 在没有一点帮助的情况下不容易区分。通常您可以将卡号发送到支付网关,他们会给你这个细节,但你可以从一个简单的前缀表中计算出来。
简单地说,每家银行/组织都可以访问一组特定的前缀[开头的数字],并且根据您想要的详细程度,您可以使用前缀将任何卡号与组织匹配。好的是借记卡和信用卡即使来自同一家银行也使用不同的前缀。
从 Web 网关的角度来看,您通常不关心,因为支付网关会自动告诉您他们是否接受卡,为您进行热卡检查并验证输入的其他信息。
关于不必在借记卡上输入密码的评论(上/下)是错误的。那不是借记卡,有时被称为车库/燃料卡(我来自哪里),它们仅适用于某些“燃料类型的交易”,以加快前院的处理速度。
我想您会感到困惑,当您在商店刷卡时,机器会知道您拥有哪种卡。尽管使用我的荷兰借记卡,我总是可以选择..
但我猜磁条存储的不仅仅是数字,读卡器使用它来确定您的卡类型。
您只需要加入其他应用程序/站点并询问用户:)
数字范围。这是我曾经拥有的旧规范的一小部分摘录。
现在可能还有其他方法,例如来自处理器的返回消息,但我已经很长时间没有处理这个问题了。我们将所有内容都作为信用卡处理,如果该卡严格来说是借记卡,银行只会处理它。
https://binlist.net/ 提供免费(限速)API。您只需输入卡号的前 6 位或 8 位数字 - 即发卡行识别号 (IIN),以前称为银行识别号 (BIN)。
curl -H "Accept-Version: 3" "https://lookup.binlist.net/45717360"
Binbase 会根据卡号的前六位数字告诉您卡是借记卡还是贷记卡。您可以每天进行 10 次手动查找,也可以付费购买整个数据库。 www.binbase.com/search.html
返回的信息格式如下:
Card Brand: VISA
Issuing Bank: BRANCH BANKING AND TRUST COMPANY
Card Type (Credit/Debit): DEBIT
Card Level: CLASSIC
ISO Country Name: UNITED STATES
ISO Country A2 Code: US
ISO Country A3 Code: USA
ISO Country Number: 840
Bank Website: HTTP://WWW.EXAMPLE.COM
Bank Phone: 555-555-5555 OR 800-555-5555
我找到了一个免费的 BIN 检查器 json API。 https://api.freebinchecker.com/bin/ {bin} 用于检查单个 BIN 号。它接受长度为六的数字,即任何支付卡的初始数字。该应用程序将执行数据库查找以返回为 BIN 存储的所有相关信息以及大约 350,000 多条记录。还有高级功能。
您可以获得卡类型和其他相关信息。除了前 6 位数字外,不需要完整的卡号。
例子:
**Request:**
https://api.freebinchecker.com/bin/370245
**Response:**
{"valid":true,
"card":{
"status":"active",
"brand":"VISA",
"type":"credit",
"category":"STANDARD",
"sub-category":"The payment system \"Visa\""
},
"country":{
"name":"United States",
"alpha-2-code":"US",
"numeric-code":"840",
"latitude":"37.09024",
"longitude":"-95.712891"
},
"issuer":{
"name":"JPMORGAN CHASE BANK, N.A.",
"url":"www.jpmorganchase.com",
"tel":"1-800-565-3460-9200"
}}
欲了解更多信息:Freebinchecker