credit_card_type_detector | 信用卡类型检测器

一个 Dart 包,根据当前的信用卡号模式检测信用卡类型。

这是从Braintree的credit-card-type模块移植的

credit_card_type_detector

安装

  1. 将依赖项添加到您的 pubspec.yaml

    在pub.dartlang.org的“安装”标签页中获取当前版本

dependencies:
    credit_card_type_detector: ^1.0.2
  1. 导入包
import 'package:credit_card_type_detector/credit_card_type_detector.dart';

用法

import 'package:credit_card_type_detector/credit_card_type_detector.dart';

String visa = "4647 7200 6779 1032";

var type = detectCCType(visa);

assert(type == CreditCardType.visa)

查看示例应用程序,位于example目录中,或者查看pub.dartlang.org上的“示例”标签页,了解使用BLoC模式的更完整示例

特点

无外部依赖

支持的卡片

* Visa
* Mastercard
* American Express
* Discover
* Diners Club
* JCB
* Union Pay
* Maestro
* Mir
* Elo
* Hiper/Hipercard

模式检测

每种卡片类型都有相应的模式列表。请参阅cardNumPatterns映射。
每种模式都是一个字符串数组,代表一个数字范围或单个数字。这些数字对应于信用卡公司的发行商识别号(IIN)

如果模式是包含单个数字的数组,则将该模式与卡号进行比较。即使卡号比模式短,部分匹配也会成功。例如,给定模式123,卡号1121231234都将匹配,但213124不会匹配。

如果模式是数字数组,则会检查卡号是否在该数字范围内。同样,接受部分匹配。例如,给定范围[100, 123],卡号11010012120123都将匹配,但213124不会匹配。

该软件包会遍历每种卡片类型及其对应的所有模式。

API

detectCCType(String number)

返回:一个CreditCardType枚举。

例如,对于任何以'4'开头的卡号,返回CreditCardType.visa

作者

Tanner Davis (Cholojuanito) - 创作者和仓库所有者 - Github个人资料

GitHub

https://github.com/cholojuanito/credit_card_type_detector