|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.acmetech.cc.MagStripeCard
%B1234123412341234^CardUser/John^030510100000019301000000877000000?;1234123412341234=0305101193010877?
This class should be able to recognize and standardize any of the following input data strings:
| Field Summary | |
(package private) java.lang.String |
_AccountHolder
Raw account name (something like "Creditmeister/Steven P") |
static boolean |
_AutoGenerateTrack2
If set to true (default) track2 data is automatically generated if it was not supplied. |
protected static boolean |
_Debug
if set to true, parsing and debugging info written to System.out |
(package private) java.lang.String |
_ExpMonthStr
Expiration month (two digit) |
(package private) java.lang.String |
_ExpYearStr
Expiration year (four digit) |
(package private) boolean |
_HasTrack1
true if track 1 data present |
(package private) boolean |
_HasTrack2
true if track 2 data present (note: track 2 is autmatically generated if _AutoGenerateTrack2 is set to true -- default's to true) |
(package private) java.lang.String |
_InputStripeStr
raw input string containing track 1, track 2 or track 1 & 2 data. |
(package private) java.lang.String |
_NameFirst
Account holder first name (plus possibly middle initial, title, etc) |
(package private) java.lang.String |
_NameLast
Account holder surname |
(package private) boolean |
_NeedsParsing
set to true after input magnetic stripe string has been parsed. |
(package private) java.lang.String |
_PAN
Primary Account Number |
(package private) java.lang.String |
_Track1Data
track 1 data string (parsed from input) including sentinel characters. |
(package private) java.lang.String |
_Track2Data
track 2 data string (parsed from input) including sentinel characters. |
(package private) boolean |
_Track2WasAutoGenerated
True if Track 2 magnetic stripe data was auto-generated from the Track 1 data. |
| Constructor Summary | |
MagStripeCard(java.lang.String trackString)
Create a MagStripeCard using magnetic stripe data string (tracks 1, 2 or both) |
|
| Method Summary | |
protected void |
_parse()
parse the magstripe string. |
java.lang.String |
getAccountName()
Get the raw account holder name (ex.: "Spears/Brintney S"). |
java.lang.String |
getAccountNumber()
Get primary account number (PAN field from Track 1 or Track 2 data) |
java.lang.String |
getExpirationMonth()
Get expiration month from track 1 or track 2 data. |
java.lang.String |
getExpirationYear()
Get expiration year from track 1 or track 2 data. |
java.lang.String |
getFirstName()
Get account holder first name |
java.lang.String |
getLastName()
Get account holder last name |
java.lang.String |
getTrack1()
Get Track 1 magstripe string. |
java.lang.String |
getTrack2()
Get Track 2 magstripe string. |
boolean |
getTrack2WasAutoGenerated()
Determine whether the Track 2 data string was auto-generated during parsing. |
java.lang.String |
getTrackData()
Get the combined Track 1 & 2 data string if both are available. |
boolean |
hasTrack1()
Determine if track 1 data is present. |
boolean |
hasTrack2()
Determine if track 2 data is present. |
static void |
main(java.lang.String[] args)
Static test method called with a single parameter (the track 1, 2 or combined mag data string) Call with no parameters for sample usage string. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
java.lang.String _InputStripeStr
java.lang.String _Track1Data
java.lang.String _Track2Data
_AutoGenerateTrack2protected static boolean _Debug
boolean _NeedsParsing
boolean _HasTrack1
boolean _HasTrack2
public static boolean _AutoGenerateTrack2
boolean _Track2WasAutoGenerated
java.lang.String _AccountHolder
java.lang.String _NameFirst
java.lang.String _NameLast
java.lang.String _PAN
java.lang.String _ExpMonthStr
java.lang.String _ExpYearStr
| Constructor Detail |
public MagStripeCard(java.lang.String trackString)
throws MagstripeParseException
trackString - track 1,2, or both data strings.
MagstripeParseException| Method Detail |
public boolean hasTrack1()
public boolean hasTrack2()
public java.lang.String getTrack1()
MagstripeParseExceptiongetTrack2()public java.lang.String getTrack2()
getTrack1()public java.lang.String getTrackData()
getTrack1(),
getTrack2()public boolean getTrack2WasAutoGenerated()
public java.lang.String getAccountName()
public java.lang.String getFirstName()
public java.lang.String getLastName()
public java.lang.String getAccountNumber()
public java.lang.String getExpirationMonth()
public java.lang.String getExpirationYear()
protected void _parse()
throws MagstripeParseException
MagstripeParseExceptionpublic static void main(java.lang.String[] args)
args - a string containing magnetic track 1, 2 or combined data.
Sample cmd line and output:
java -classpath . -Dcom.acmetech.cc.magstripe.debug=true \
-Dcom.acmetech.cc.magstripe.autoGenerateTrack2=false \
com.acmetech.cc.MagStripeCard \
'%B1234123412341234^CardUser/John^030510100000019301000000877000000?;1234123412341234=0305101193010877?'
==> ==== Parsing Input String ====
==> Track 1=%B1234123412341234^CardUser/John^030510100000019301000000877000000?
==> Track 2=;1234123412341234=0305101193010877?
==> Track 1 Account: 1234123412341234
==> Track 1 Acct Name: CardUser/John
==> First Name: CardUser
==> Last Name: John
==> Track 1 Acct Exp Date: 0305
==> Exp Year: 2003
==> Exp Month: 05
==>
==> ===== Testing Public Methods =====
==> Has Track 1? true
==> Has Track 2? true
==> Track 1 String=%B1234123412341234^CardUser/John^030510100000019301000000877000000?
==> Track 2 String=;1234123412341234=0305101193010877?
==> Track 2 AUTO-GENERATED: false
==> Combined Tracks=%B1234123412341234^CardUser/John^030510100000019301000000877000000?;1234123412341234=0305101193010877?
==> Account Name (RAW): CardUser/John
==> First Name: CardUser
==> Last Name: John
==> Primary Account Num (PAN): 1234123412341234
==> Expiration Month: 05
==> Expiration Year: 2003
==> -- DONE --
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||