public class CreditCardTools extends GenericService implements PaymentTypeProvider
Modifier and Type | Field and Description |
---|---|
static int |
CARD_EXP_DATE_NOT_VALID |
static int |
CARD_EXPIRED |
static int |
CARD_INFO_NOT_VALID |
static int |
CARD_LENGTH_NOT_VALID |
static int |
CARD_NUMBER_DOESNT_MATCH_TYPE |
static int |
CARD_NUMBER_HAS_INVALID_CHARS |
static int |
CARD_NUMBER_NOT_VALID |
static int |
CARD_TYPE_NOT_VALID |
static java.lang.String |
CLASS_VERSION
Class version string
|
protected java.util.Map<java.lang.String,PaymentType> |
mSupportedPaymentTypesByVariation |
static int |
SUCCESS |
static java.lang.String |
SUPPORTED_PAYMENT_GROUP |
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
CreditCardTools() |
Modifier and Type | Method and Description |
---|---|
protected static java.lang.String |
Code(java.lang.String iName)
Get a code, given a name
|
protected java.lang.String |
createCreditCardResourceKey(java.lang.String pFirstPartOfResourceName,
java.lang.String pSecondPartOfResourceName)
Creates the resource name for a credit card payment type.
|
protected java.util.Map<java.lang.String,PaymentType> |
createSupportedPaymentTypesMap()
Creates a map of payment types (keyed by the payment type variation) supported by this class.
|
void |
doStartService()
This is called after a Service has been created, placed into the
naming hierarchy, and initialized with its configured property
values.
|
java.util.Properties |
getCardCodesMap() |
java.util.Properties |
getCardLengthsMap() |
java.util.Properties |
getCardPrefixesMap() |
java.util.Properties |
getCardTypesMap() |
atg.payment.creditcard.ExtendableCreditCardTools |
getCreditCardTools() |
java.util.Map<java.lang.String,java.lang.String> |
getPaymentGroupSubstitutionMap()
Return the map which allows one payment group identifier to be mapped to
another.
|
protected PaymentType |
getPaymentType(java.lang.String pPaymentGroupIdentifier,
java.lang.String pPaymentTypeVariation)
Given a payment group identifier and an optional payment type variation, choose a matching payment type.
|
PaymentType |
getPaymentTypeForPaymentGroup(PaymentGroup pPaymentGroup)
Get a payment type object for a specific payment group which has a payment amount greater than zero.
|
PaymentType |
getPaymentTypeForString(java.lang.String pPaymentGroupIdentifier,
java.lang.String pPaymentTypeString)
Create a payment type object based upon a formatted string.
|
static java.lang.String |
getStatusCodeMessage(int pCode)
This method returns an error string which maps to the supplied status code.
|
static java.lang.String |
getStatusCodeMessage(int pCode,
java.util.Locale pLocale)
This method returns an error string which maps to the supplied status code.
|
java.lang.String |
getSupportedPaymentGroup()
Get the payment group identifier which this class manages the payment types for.
|
java.util.Set<PaymentType> |
getSupportedPaymentTypes(java.lang.String pPaymentGroupIdentifier)
Get payment type objects for all payment type variations associated with the payment group identifier passed in.
|
protected static boolean |
isNumber(java.lang.String pNumber)
Check to see if this is a number
|
protected static boolean |
isValidCardNumberLength(java.lang.String iTypeName,
java.lang.String iNumber)
Check the length of a credit card number against it's
card type.
|
protected static boolean |
isValidCardType(java.lang.String iTypeName,
java.lang.String iNumber)
Check a credit card number against it's
card type.
|
protected static java.lang.String |
Name(java.lang.String iCode)
Get a name, given a code
|
void |
setCardCodesMap(java.util.Properties pCardCodesMap) |
void |
setCardLengthsMap(java.util.Properties pCardLengthsMap) |
void |
setCardPrefixesMap(java.util.Properties pCardPrefixesMap) |
void |
setCardTypesMap(java.util.Properties pCardTypesMap) |
void |
setCreditCardTools(atg.payment.creditcard.ExtendableCreditCardTools pCreditCardTools) |
void |
setPaymentGroupSubstitutionMap(java.util.Map<java.lang.String,java.lang.String> pPaymentGroupSubstitutionMap)
Set the map which allows one payment group identifier to be mapped to
another.
|
void |
setSupportedPaymentGroup(java.lang.String pSupportedPaymentGroup)
Set the payment group identifier which this class acts as a payment type provider for.
|
protected java.lang.String |
substitutePaymentGroupIdentifier(java.lang.String pPaymentGroupIdentifier)
Swap one payment group identifier for another.
|
protected static boolean |
validateCheckDigit(java.lang.String iNumber)
Validate a credit card number's checksum.
|
static int |
verifyCreditCard(CreditCardInfo pCreditCard)
This method does basic credit card verification, such as comparing the expiration date to the current
date and verifying that the credit card number conforms to simple algorithm.
|
protected static int |
verifyCreditCard(CreditCardInfo pCreditCard,
java.lang.String number,
java.lang.String type) |
protected static int |
verifyCreditCardDate(CreditCardInfo pCreditCard,
java.lang.String pExpMonth,
java.lang.String pExpDayOfMonth,
java.lang.String pExpYear) |
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
public static final int SUCCESS
public static final int CARD_EXPIRED
public static final int CARD_NUMBER_HAS_INVALID_CHARS
public static final int CARD_NUMBER_DOESNT_MATCH_TYPE
public static final int CARD_LENGTH_NOT_VALID
public static final int CARD_NUMBER_NOT_VALID
public static final int CARD_INFO_NOT_VALID
public static final int CARD_EXP_DATE_NOT_VALID
public static final int CARD_TYPE_NOT_VALID
public static final java.lang.String SUPPORTED_PAYMENT_GROUP
protected java.util.Map<java.lang.String,PaymentType> mSupportedPaymentTypesByVariation
public atg.payment.creditcard.ExtendableCreditCardTools getCreditCardTools()
public void setCreditCardTools(atg.payment.creditcard.ExtendableCreditCardTools pCreditCardTools)
public java.util.Properties getCardTypesMap()
public void setCardTypesMap(java.util.Properties pCardTypesMap)
public java.lang.String getSupportedPaymentGroup()
public void setSupportedPaymentGroup(java.lang.String pSupportedPaymentGroup)
pSupportedPaymentGroup
- public java.util.Properties getCardCodesMap()
public void setCardCodesMap(java.util.Properties pCardCodesMap)
public java.util.Properties getCardPrefixesMap()
public void setCardPrefixesMap(java.util.Properties pCardPrefixesMap)
public java.util.Properties getCardLengthsMap()
public void setCardLengthsMap(java.util.Properties pCardLengthsMap)
public java.util.Map<java.lang.String,java.lang.String> getPaymentGroupSubstitutionMap()
public void setPaymentGroupSubstitutionMap(java.util.Map<java.lang.String,java.lang.String> pPaymentGroupSubstitutionMap)
getPaymentGroupSubstitutionMap()
public static java.lang.String getStatusCodeMessage(int pCode)
pCode
- the status code returned from a method in this classpublic static java.lang.String getStatusCodeMessage(int pCode, java.util.Locale pLocale)
pCode
- the status code returned from a method in this classpublic static int verifyCreditCard(CreditCardInfo pCreditCard)
pCreditCard
- the credit card dataprotected static int verifyCreditCardDate(CreditCardInfo pCreditCard, java.lang.String pExpMonth, java.lang.String pExpDayOfMonth, java.lang.String pExpYear)
protected static int verifyCreditCard(CreditCardInfo pCreditCard, java.lang.String number, java.lang.String type)
protected static boolean validateCheckDigit(java.lang.String iNumber)
Each digit,except the last is multipled by a "weight", to produce a digit "value". The weight alternates between 2 and 1, starting with 2 for the last (right most) digit. The resulting values are summed. To sum the results, single digit values are simply added to the total. For two digit values the tens and the ones digits are added separately, so 14 = 1+4 = 5. Then to test the check digit take the total MOD 10 and subtract it from ten. This should equal the check digit.
protected static boolean isNumber(java.lang.String pNumber)
protected static java.lang.String Code(java.lang.String iName)
iName
- credit card type nameprotected static java.lang.String Name(java.lang.String iCode)
iCode
- two letter credit card type codeprotected static boolean isValidCardType(java.lang.String iTypeName, java.lang.String iNumber)
iTypeName
- full name of card type (Visa, MasterCard)iNumber
- normalized card numberprotected static boolean isValidCardNumberLength(java.lang.String iTypeName, java.lang.String iNumber)
iTypeName
- full name of card type (Visa, MasterCard)iNumber
- normalized card numberpublic java.util.Set<PaymentType> getSupportedPaymentTypes(java.lang.String pPaymentGroupIdentifier) throws InvalidParameterException
getSupportedPaymentTypes
in interface PaymentTypeProvider
pPaymentGroupIdentifier
- An identifier for the group we're going to get payment types for.InvalidParameterException
- if the payment group identifier passed in was deemed invalid.protected java.lang.String substitutePaymentGroupIdentifier(java.lang.String pPaymentGroupIdentifier)
public PaymentType getPaymentTypeForPaymentGroup(PaymentGroup pPaymentGroup) throws InvalidParameterException
getPaymentTypeForPaymentGroup
in interface PaymentTypeProvider
pPaymentGroup
- The payment group whose payment type we're interested in.InvalidParameterException
- if the payment group identifier passed in was deemed invalid.public PaymentType getPaymentTypeForString(java.lang.String pPaymentGroupIdentifier, java.lang.String pPaymentTypeString) throws InvalidParameterException
getPaymentTypeForString
in interface PaymentTypeProvider
pPaymentGroupIdentifier
- An identifier for the payment group which the payment type will related to.pPaymentTypeString
- The original payment string will have consisted of the group identifier followed
by other info specific to that payment type. So this is the rest of the string minus the group identifier
(and first delimiter). It will be up to individual providers what to do with this information, but one
expected use will be that it denotes a variation of a payment group type.InvalidParameterException
- if the payment group identifier passed in was deemed invalid.protected PaymentType getPaymentType(java.lang.String pPaymentGroupIdentifier, java.lang.String pPaymentTypeVariation) throws InvalidParameterException
pPaymentGroupIdentifier
- The identifier for the payment group e.g. creditCard.pPaymentTypeVariation
- The specific variation of the payment type e.g. visaInvalidParameterException
- if the payment group identifier is unknown.protected java.lang.String createCreditCardResourceKey(java.lang.String pFirstPartOfResourceName, java.lang.String pSecondPartOfResourceName)
pFirstPartOfResourceName
- The first part of the resource's namepSecondPartOfResourceName
- The second part of the resource's nameprotected java.util.Map<java.lang.String,PaymentType> createSupportedPaymentTypesMap()
public void doStartService() throws ServiceException
doStartService
in class GenericService
ServiceException
- if the Service had a problem starting up