皆さんはクレジットカードについてご存知ですか?
僕は全く知りませんでした。16桁のランダムな番号がクレジットカード会社から発行されて
それをショッピングとかで使える!?くらいの感覚でした。
実は全くそうではありませんでした。
そう!クレジットカード番号には法則があるんです。
カード番号冒頭の数字でカード会社が分かる
クレジットカード番号はランダムに決まっているわけでは無くて実は各ブランド以下の法則があります。
- master…510000〜559999, 222100〜272099の間の番号で始まる
- Visa…4から始まるクレカ番号
- JCB…3528〜3589で始まるクレカ番号
- アメックス…34, 37で始まるクレカ番号
- Diners…300 – 303574, 3095, 36, 38 – 39の番号幅
この法則によりクレジットカード番号がどの会社によるものかが分かります。
クレカ番号はある程度使える番号か決済しなくても分かる
そしてクレジットカード番号にはもう一つ法則があって、クレジットカード番号は数字の列の妥当性を確認するLuhnアルゴリズム(ルーンアルゴリズム)というアルゴリズムによって番号が決められています。
このアルゴリズムはの手順を元にしています。
ChatGPT
- 右端から数えて偶数番目の数字を2倍にします。
- 2倍した結果が10以上の場合は、その数字の各桁を足し合わせます(例: 16の場合は1+6=7)。
- すべての数字を合計します。
- 合計が10で割り切れる(10の倍数である)場合、その番号は有効です。
クレジットカード番号はこのアルゴリズムを元に番号が発行されているので、例えばユーザが間違えた番号をサイト上で入力したら4の手順で割り切れないので間違えているクレカと判断ができるんです!
もちろんカード番号は有効でも実際の決済は出来ない可能性はありますが番号を打ち間違えた…といった事を防ぎ、カード会社から発行されているクレカ番号であると言ったことを推測できるんです!
この仕組みを実装できたらクレカ決済を導入しているサイトやサブスクのサービスを提供する時にユーザーの離脱を防ぎ収益の取り逃しを防ぐことができますね。
実際にサービスに導入してみた
ということで実際に私の管理するサービスでもクレカ決済をする時にこの仕組みを利用してカッコ良い&ユーザーフレンドリー&離脱を防ぐフォームを作ることができました。是非この記事を見た皆さんも使ってみて下さいね。