Package org.jpos.core
Class CardHolder
- java.lang.Object
-
- org.jpos.core.CardHolder
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Loggeable
public class CardHolder extends java.lang.Object implements java.lang.Cloneable, java.io.Serializable, Loggeable
- Since:
- jPOS 1.1 This class is called 'CardHolder', but a better name could have been 'Card' At some point we'll deprecate this one and create a new 'Card' class.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
exp
Expiration date (YYMM)protected java.lang.String
pan
Primary Account Numberprotected java.lang.String
securityCode
Optional security code (CVC, CVV, Locale ID, wse)protected java.lang.String
track1
Track1 Dataprotected java.lang.String
trailer
Track2 trailler
-
Constructor Summary
Constructors Constructor Description CardHolder()
creates an empty CardHolderCardHolder(java.lang.String track2)
creates a new CardHolder based on track2CardHolder(java.lang.String pan, java.lang.String exp)
creates a new CardHolder based on pan and expCardHolder(ISOMsg m)
Construct a CardHolder based on content received on field 35 (track2) or field 2 (PAN) + field 14 (EXP)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
dump(java.io.PrintStream p, java.lang.String indent)
dumps CardHolder basic information
by default we do not dump neither track1/2 nor securityCode for security reasons.boolean
equals(java.lang.Object obj)
java.lang.String
getBIN()
Get the traditional 6-digit BIN (Bank Issuer Number) from the PANjava.lang.String
getBIN(int len)
Get the firstlen
digits from the PAN.java.lang.String
getEXP()
Get Expiration Datejava.lang.String
getNameOnCard()
java.lang.String
getPAN()
java.lang.String
getSecurityCode()
java.lang.String
getServiceCode()
java.lang.String
getTrack1()
java.lang.String
getTrack2()
java.lang.String
getTrailer()
java.lang.String
getTrailler()
Deprecated.use getTrailer()int
hashCode()
boolean
hasSecurityCode()
boolean
hasTrack1()
boolean
hasTrack2()
boolean
isExpired()
Y2K compliant expiration checkboolean
isExpired(java.util.Date currentDate)
Y2K compliant expiration checkboolean
isValidCRC()
static boolean
isValidCRC(java.lang.String p)
void
parseTrack2(java.lang.String s)
extract pan/exp/trailler from track2boolean
seemsManualEntry()
void
setEXP(java.lang.String exp)
Set Expiration Datevoid
setPAN(java.lang.String pan)
Sets Primary Account Numbervoid
setSecurityCode(java.lang.String securityCode)
assigns securityCode to this CardHolder objectvoid
setTrack1(java.lang.String track1)
void
setTrailer(java.lang.String trailer)
void
setTrailler(java.lang.String trailer)
Deprecated.use setTrailer
-
-
-
Field Detail
-
pan
protected java.lang.String pan
Primary Account Number
-
exp
protected java.lang.String exp
Expiration date (YYMM)
-
trailer
protected java.lang.String trailer
Track2 trailler
-
securityCode
protected java.lang.String securityCode
Optional security code (CVC, CVV, Locale ID, wse)
-
track1
protected java.lang.String track1
Track1 Data
-
-
Constructor Detail
-
CardHolder
public CardHolder()
creates an empty CardHolder
-
CardHolder
public CardHolder(java.lang.String track2) throws InvalidCardException
creates a new CardHolder based on track2- Parameters:
track2
- cards track2- Throws:
InvalidCardException
-
CardHolder
public CardHolder(java.lang.String pan, java.lang.String exp) throws InvalidCardException
creates a new CardHolder based on pan and exp- Throws:
InvalidCardException
-
CardHolder
public CardHolder(ISOMsg m) throws InvalidCardException
Construct a CardHolder based on content received on field 35 (track2) or field 2 (PAN) + field 14 (EXP)- Parameters:
m
- an ISOMsg- Throws:
InvalidCardException
-
-
Method Detail
-
parseTrack2
public void parseTrack2(java.lang.String s) throws InvalidCardException
extract pan/exp/trailler from track2- Parameters:
s
- a valid track2- Throws:
InvalidCardException
-
setTrack1
public void setTrack1(java.lang.String track1)
- Parameters:
track1
- card's track1
-
getTrack1
public java.lang.String getTrack1()
- Returns:
- the track1
-
hasTrack1
public boolean hasTrack1()
- Returns:
- true if we have a track1
-
getNameOnCard
public java.lang.String getNameOnCard()
- Returns:
- the Name written on the card (from track1)
-
getTrack2
public java.lang.String getTrack2()
- Returns:
- reconstructed track2 or null
-
hasTrack2
public boolean hasTrack2()
- Returns:
- true if we have a (may be valid) track2
-
setSecurityCode
public void setSecurityCode(java.lang.String securityCode)
assigns securityCode to this CardHolder object- Parameters:
securityCode
- Card's security code
-
getSecurityCode
public java.lang.String getSecurityCode()
- Returns:
- securityCode (or null)
-
hasSecurityCode
public boolean hasSecurityCode()
- Returns:
- true if we have a security code
-
getTrailler
public java.lang.String getTrailler()
Deprecated.use getTrailer()- Returns:
- trailer (may be null)
-
setTrailler
public void setTrailler(java.lang.String trailer)
Deprecated.use setTrailerSet Card's trailer- Parameters:
trailer
- Card's trailer
-
getTrailer
public java.lang.String getTrailer()
-
setTrailer
public void setTrailer(java.lang.String trailer)
-
setPAN
public void setPAN(java.lang.String pan) throws InvalidCardException
Sets Primary Account Number- Parameters:
pan
- Primary Account NUmber- Throws:
InvalidCardException
-
getPAN
public java.lang.String getPAN()
- Returns:
- Primary Account Number
-
getBIN
public java.lang.String getBIN(int len)
Get the firstlen
digits from the PAN. Can be used for the newer 8-digit BINs, or some arbitrary length.- Returns:
len
-digit bank issuer number
-
getBIN
public java.lang.String getBIN()
Get the traditional 6-digit BIN (Bank Issuer Number) from the PAN- Returns:
- 6-digit bank issuer number
-
setEXP
public void setEXP(java.lang.String exp) throws InvalidCardException
Set Expiration Date- Parameters:
exp
- card expiration date- Throws:
InvalidCardException
-
getEXP
public java.lang.String getEXP()
Get Expiration Date- Returns:
- card expiration date
-
isExpired
public boolean isExpired()
Y2K compliant expiration check- Returns:
- true if card is expired (or expiration is invalid)
-
isExpired
public boolean isExpired(java.util.Date currentDate)
Y2K compliant expiration check- Parameters:
currentDate
- current system's date- Returns:
- true if card is expired (or expiration is invalid)
-
isValidCRC
public boolean isValidCRC()
-
isValidCRC
public static boolean isValidCRC(java.lang.String p)
-
dump
public void dump(java.io.PrintStream p, java.lang.String indent)
dumps CardHolder basic information
by default we do not dump neither track1/2 nor securityCode for security reasons.
-
getServiceCode
public java.lang.String getServiceCode()
- Returns:
- ServiceCode (if available) or a String with three blanks
-
seemsManualEntry
public boolean seemsManualEntry()
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
-