ECサイトでクレジットカード番号が正しいかを判別する方法

公開日: 2019/09/26 更新日: 2019/10/31
カテゴリー: EC
  • このエントリーをはてなブックマークに追加

ECサイトの決済テストに使えるクレジットカードのテスト用カード番号

スポンサードサーチ

クレジットカード番号は先頭6桁でカード発行会社がわかる

クレジットカード番号には一定の法則があり、これはISO/IEC 7812で決められています。

Wikipedia:ISO/IEC 7812

このWikipedia:ISO/IEC 7812で定められている番号は、発行者識別番号(IIN:Issuer Identifier Number)や銀行識別番号(BIN:Bank Identification Number)と呼ばれる先頭6桁、個々の口座番号、1桁のチェックサムで構成されています。

また、クレジットカードの桁数は、各ブランド毎に以下のようになっています。

クレジットカードブランド毎の桁数
カードブランド 表示桁数 合計桁数
VISA、MasterCard、JCB 4桁 4桁 4桁 4桁 16桁
American Express 4桁 6桁 5桁 15桁
Diners Club 4桁 6桁 4桁 14桁

主要産業識別子(MII:Major industry identifier)

発行者識別番号(IIN:Issuer Identifier Number)や銀行識別番号(BIN:Bank Identification Number)と呼ばれる先頭6桁の中の1桁目、主要産業識別子(MII:Major industry identifier)と呼ばれるカード発行者の業界を表しています。

MII値 産業
0 ISO予約値
1 航空
2 航空 / その他将来発生する産業
3 旅行・娯楽/銀行・金融
4 銀行・金融
5 銀行・金融
6 運送 / 銀行・金融
7 石油 / その他将来発生する産業
8 ヘルスケア / 医療 / 通信 / その他将来発生する産業
9 国毎に割り当て可能

この中で銀行・金融関連と定義されている先頭が「3」、「4」、「5」のクレジットカードが数多く発行されており、国際ブランド別としては以下のような決まりになっています。

カードブランド 最初の1桁
JCB、American Express、Diners Club 3
VISA 4
MasterCard 2か5
Discover、中国銀聯 6

MasterCardは以前は「5」しかありませんでしたが、MasterCard:MasterCardの新カード番号体系の追加導入により、2017年7月以降から「2」で始まるクレジットカード番号のものが発行されるようになりました。

口座番号

クレジットカード番号の7桁目から最終2桁目まで、最大で12桁の数値が口座番号となっており、各カードブランドで利用されている口座番号は以下の桁数に割り当てられています。

カードブランド 口座番号割り当て桁数
VISA、MasterCard、JCB 7桁目~15桁目
American Express 7桁目~14桁目
Diners Club 7桁目~13桁目

クレジットカード番号の正当性チェック方法

クレジットカードの番号が正しいものかどうかは、Wikipedia:Luhnアルゴリズムでチェックすることができます。

方法としては以下の通り。

1.右端のチェックディジットを1番目として、偶数番目の桁を2倍にする。
2.2倍にしていない桁も含め、各数字の総和を求める(2倍にした桁が2桁になった場合は、それぞれを別々の数字として加える)。
3.この総和の下1桁が0なら(つまり、10で割り切れる場合)、この番号はLuhnアルゴリズムでは正しく、そうでない場合は正しくない。

これは数字の並びが正しいかをチェックするだけのロジックですので、そのクレジットカード番号が存在するかどうかとは全く別の話です。

しかし、見てきたようにカードブランド、桁数、Luhnアルゴリズムを使えば、入力されたクレジットカード番号か正しいものかどうかは、ある程度の判別ができるのです。

スポンサードサーチ

タグ: , , , , , , , , , , , , , , , , ,