bankcard
通过银行卡号查询银行卡信息,支持浏览器端和 node 端
安装
npm install bankcard
yarn add bankcard
pnpm add bankcard
使用
es
import { searchCardBin } from 'bankcard';
searchCardBin('622305453434432224');
cjs
const { searchCardBin } = require('bankcard');
searchCardBin('622305453434432224');
- 浏览器引入
在浏览器中使用 script 标签直接引入文件,并使用全局变量 bankcard 。
npm 包的 bankcard/dist 目录下提供了 bankcard.js 以及 bankcard.min.js。你也可以直接使用cdn:
- jsdelivr: https://cdn.jsdelivr.net/npm/bankcard@3
- unpkg: https://unpkg.com/bankcard@3
<script src="https://unpkg.com/bankcard@3"></script>
<script>
bankcard.searchCardBin('622305453434432224');
bankcard.validateCardInfo('622305453434432224');
</script>
示例
API
type CardInfo = {
bankName: string; // 银行名称
bankCode: string; // 银行编码
cardBin: string; // 银行卡卡Bin
cardType: CardType; // 卡类型
cardTypeName: CardTypeName; // 卡类型名称
len: number; // 卡号长度
};
searchCardBin
根据银行卡号查询卡 Bin 的银行卡信息。
searchCardBin(bankCardNo: string, options?: {
multiple?: boolean; // 支持查询多个值,返回结果将变成数组,默认 false 。不常用,仅少数不同银行的卡 bin 存在重复。
data?: CardInfo[]; // 自定义数据
});
无结果返回 null,有结果返回:CardInfo 。
当 multiple=true ,返回:CardInfo[] 。
validateCardInfo
验证银行卡号。
validateCardInfo(bankCardNo: string, options?: {
data?: CardInfo[]; // 自定义数据
});
返回:
{
validated: boolean; // 验证结果
errorCode: string; // 错误码
message: string; // 错误信息
cardInfo: CardInfo | null; // 当验证成功返回 CardInfo ,否则返回 null
}
先查询卡 Bin,再校验卡号长度。如果验证失败 validated 为 false 。
errorCode message 有以下值:
| errorCode | message |
|---|---|
| 01 | 找不到该银行卡号 |
| 02 | 银行卡号格式错误 |
banks
全部银行列表。
[
{
code: 'ABC',
name: '中国农业银行'
}
// ...
];
cards
全部银行卡信息列表。
CardInfo[];
CardType
卡类型。
{
DC: "DC",
CC: "CC",
SCC: "SCC",
PC: "PC"
}
CardTypeName
卡类型名称。
{
DC: "储蓄卡",
CC: "信用卡",
SCC: "准贷记卡",
PC: "预付费卡"
}
其他
- 为什么不采用Luhn 算法校验卡号?
部分银行卡不符合 Luhn 算法。如招商银行的运通卡、中国银行借记卡等等。可参阅《支付宝为什么不采用银行卡 Luhn 算法校验卡号?》。