決済

あなたのクレジットカード番号は正しいか?

投稿日:2022年2月15日 更新日:

クレジットカード番号は、各種ブランド(VISA/MASTERCARD/JCB/AMEXなど)によって異なる番号が付与されます。クレジットカード番号には、チェックデジットが含まれていて、正当性を確認することができます。

■ クレジットカード番号の体系

クレジットカード番号の体系は、国際標準規格(ISO/IEC 7812)で決められています。
最後の桁には、チャックデジットと呼ばれる数字が付与され、クレジットカード番号の正当性を確認できます。

・BIN(6桁)
  発行者識別番号であり、ブランド(VISA/MASTERCARD/JCB/AMEXなど)毎に決められている値

・口座番号(最大12桁)
  ブランド(VISA/MASTERCARD/JCB/AMEXなど)が付与する値

・チェックデジット(1桁)
 決められたアルゴリズム(Luhnアルゴリズム)でチェックが正常となるために付与される値


ちなみに、クレジットのICカードの規格であるEMVでは、TLVのTAG 0x5Aがクレジットカード番号(PAN)となっています。

https://emvlab.org/emvtags/?number=5A

NameDescriptionSourceFormatTemplateTagLengthP/C
Application Primary Account Number (PAN)Valid cardholder account numberICCcn var. up to 1970 or 775A0–10primitive

■ クレジットカード番号のチェックアルゴリズム

Luhnアルゴリズムを以下を参考にPythonでプログラミングしてみました。

https://ja.wikipedia.org/wiki/Luhn%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0

クレジットカード番号からブランド名を取得するようにしています。
以下のクレジットカード番号のBINを判定しています。

https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AE%E7%95%AA%E5%8F%B7


テストのクレジットカード番号は、以下のPAYJPのものを使いました。
(ただし、一部、上記のBINの定義があとで追加されているようで、ブランド名が取得できないものもあります)

https://pay.jp/docs/testcard

■ まとめ 

チェックデジットがあるからといって、クレジットカード番号を安易にチェックすると、逆に、弊害となる場合もあり得ます。

100%、クレジットカード番号の最後に下位1桁をチェックデジットとして扱っているとは言えないからです。
確実に、チェックデジットを付与していると特定できるブランドだけで実施できるのであればよいですが、そうではない場合、チェックデジットを使ったクレジットカード番号のチェックは行わないのが無難です。

実際には、カード発行者側のシステムにおいて決済を実行する際に、 チェックデジットを使ったクレジットカード番号のチェック が実施されているものと考えられます。



ソフトウェア開発・システム開発業務/セキュリティ関連業務/ネットワーク関連業務/最新技術に関する業務など、「学習力×発想力×達成力×熱意」で技術開発の実現をサポート。お気軽にお問合せ下さい



-決済

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

決済って何?「オーソリ(オーソリゼーション)」入門

ネットワークを介したクレジットカードや銀行口座引き落としによる決済とは、「オーソリ」と呼ばれる一つの電文によって行われます。 ■ オーソリ オーソリとは、「承認」(Authorization)の略語で …

POSレジのための決済メソッド入門

POSとは、「Point Of Sales(販売時点管理)」のことです。スーパーやコンビニなどの小売り業のPOSレジは、販売データを取得するための装置で、商品を販売するためのカード決済機能が備わってい …

「カード決済」の仕組みを知る!

フィンテック(FinTech)とは、消費者がモノを買うという作業=決済を、ITを使って自動化することを言います。その中で、カードを使うカード決済は、ずっと昔からある決済手段であり、フィンテックの基本で …

決済API「PAY.JP」の実践入門

EC(電子商取引)などインターネットを使ったサービスが増える中、取引の決済処理を担う決済APIも多種多様になってきています。それら決済APIについて、解説します。 ■ 決済APIとは何か 代表的な決済 …

Chinese (Simplified)Chinese (Traditional)EnglishFilipinoFrenchGermanHindiJapaneseKoreanMalayThaiVietnamese