クレジットカードブランドを特定する方法 (java)

Your_Next_Credit_Card

Wikiから

カード番号のプレフィックス(頭の番号)は、カードの属するクレジットカード網を特定する数列である。最初の6桁はBIN(Bank Identification Number, 銀行識別番号)またはIIN(Issuer Identification Number, 発行者識別番号)と呼ばれ、カードのイシュア(発行事業者)を特定する。番号の残りの部分はイシュアによって割り当てられる。

カードを発行したイシュア情報の特定はこちら

Amex,MC,VISA,DinersとJCBを簡単に判別できるように、正規表現を作ってみましょう!

//AMEX
public static final String REG_AMEX_FULL = "^3[47][0-9]{13}$";

//DINERS
public static final String REG_DINERS_FULL= "^3((?:0[0-5]|[689][0-9])[0-9]{11}|095[0-9]{10})$";

//JCB
public static final String REG_JCB_FULL = "^(?:2131|1800|35\\d{3})\\d{11}$";

//VISA
public static final String REG_VISA_FULL = "^4[0-9]{15}$";

//MC
public static final String REG_MASTER_FULL = "^5[1-5][0-9]{14}$";

そして文字列(カード番号)と正規表現をテストするメッソードを用意します。

public static boolean regMatch(String p, String s) {
	if (null == s) {
		return false;
	}
	Pattern pattern = Pattern.compile(p);
	Matcher matcher = pattern.matcher(s);
	return matcher.matches();
}

各ブランドのメッソードを作ります:

/**
 * AMEXカード
 * @param str
 * @return
 */
public static boolean isAmexCard(String str) {
	return regMatch(REG_AMEX_FULL, str);
}

/**
 * MASTERカードバリデーション
 * @param str
 * @return
 */
public static boolean isMasterCard(String str) {
	return regMatch(REG_MASTER_FULL, str);
}

/**
 * VISAカードバリデーション
 * @param str
 * @return
 */
public static boolean isVisaCard(String str) {
	return regMatch(REG_AMEX_FULL, str);
}

/**
 * DINERSカードバリデーション
 * @param str
 * @return
 */
public static boolean isDinersCard(String str) {
	return regMatch(REG_DINERS_FULL, str);
}

/**
 * JCBカードバリデーション
 * @param str
 * @return
 */
public static boolean isJcbCard(String str) {
	return regMatch(REG_JCB_FULL, str);
}

カード番号の有効性チェックメッソード:

/**
 * カード番号の有効性を確認
 * @param str
 * @return
 */
public static boolean isARealCard(String str){
	if(isDinersCard(str) || isVisaCard(str) || isMasterCard(str)
			|| isAmexCard(str) || isJcbCard(str)){
		return true;			
	}else{
		return false;
	}
}

注意点:BIN番号しかチェックされない!カード自体の有効性ではありません!

以上

by johann

広告

クレジットカードブランドを特定する方法 (java)」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中