java.lang.Object | +--CacheableCommandImpl | +--com.ibm.commerce.command.AbstractECTargetableCommand | +--com.ibm.commerce.command.TaskCommandImpl | +--com.ibm.commerce.payment.commands.DoPaymentCmdImpl
This DoPaymentCmd
Task Command Implementation is called by the
OrderProcessCmd
Controller Command to process payment for an
order.
If the command is successful, the OrderProcessCmd
will set the
Order status to the value specified by this command.
If unsuccessful, the command throws the ECApplicationException specifying an Error Code and the Error View named by the constant com.ibm.commerce.DoPaymentCmd.ERROR_TASK_NAME.
This implementation of the DoPaymentCmd
Task Command does not
have any returnData for the OrderProcessCmd
.
Note: This is a sample only and must NOT be used for production. This sample does not use any of the new features (such as Contracts and Availability-To-Promise) introduced with WebSphere Commerce.
This command uses the following AccessBeans:
This command calls the following TaskCommands:
Field Summary |
---|
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
commandContext |
Fields inherited from interface com.ibm.commerce.payment.commands. DoPaymentCmd |
CC_VALID_Y_RANGE,
COPYRIGHT,
defaultCommandClassName,
ERR_CODE_BAD_CCNUM,
ERR_CODE_BAD_SYS,
ERR_CODE_BAD_XDATE,
ERR_CODE_MISSING_PARAM,
ERRTASK_NAME,
MESSAGE_FOR_BUYER,
NAME,
NVP_field,
NVP_FIELD,
PM_MESSAGE_FOR_BUYER,
PM_MESSAGE_FOR_MERCHANT,
PM_PRIMARY_RC,
PM_SECONDARY_RC,
WCSHOSTNAME,
WCSWEBSERVERPORT,
WEBPATH |
Fields inherited from interface com.ibm.commerce.command. ECTargetableCommand |
COPYRIGHT |
Fields inherited from interface com.ibm.commerce.command. ECCommand |
defaultCommandClassName |
Constructor Summary | |
---|---|
DoPaymentCmdImpl() |
Method Summary | |
---|---|
protected
java.lang.String |
getCardBrand() Gets the credit card brand. |
protected
java.lang.Integer |
getCardExpiryMonth() Gets the credit card Expiry Month. |
protected
java.lang.Integer |
getCardExpiryYear() Gets the credit card Expiry Year. |
protected
java.lang.String |
getCardNumber() Gets the credit card number. |
java.lang.String |
getContentType() Returns the Content Type (or MIME type) of the return data, or null if the type is not known. |
protected
java.lang.Long |
getOrderId() Gets the order ID of the order being processed. |
java.lang.String |
getOrderState() Returns the single character String value that the called command wants the Calling command to use to set the Status of the order. |
protected
TypedProperty |
getPaymentAttributes() Returns the TypedProperty object containing the payment attributes passed to this command by the calling command. |
byte[] |
getReturnData() Returns the byte Array containing Return Data from the Payment System. |
protected
java.math.BigDecimal |
getTotalAmount() Returns the total order amount passed to the command by the caller. |
static boolean |
isCardExpiryDateValid(int expiryMonth, int expiryYear) Checks if the specified expiry date (expiryMonth and expiryYear) is valid. |
boolean |
isReadyToCallExecute() This method is called by the Command Framework to check if all basic mandatory parameters have been set for this command. |
void |
performExecute() Performs the main business logic of the command. |
static java.lang.String |
removeSpaceAndHyphenFromString(java.lang.String aCardNumber) Returns a new string that is free of any spaces and hyphenated characters. |
void |
reset() Resets the instance variables of the command. |
protected
void |
setCardBrand(java.lang.String cardBrand) Sets the credit card brand. |
protected
void |
setCardExpiryMonth(java.lang.Integer cardExpiryMonth) Sets the credit card Expiry Month. |
protected
void |
setCardExpiryYear(java.lang.Integer cardExpiryYear) Sets the credit card Expiry Year. |
protected
void |
setCardNumber(java.lang.String cardNumber) Sets the credit card number. |
void |
setOrderId(java.lang.Long orderId) Sets the orderId property of the command. |
void |
setPaymentAttributes(
TypedProperty paymentAttributes) Sets the paymentAttributes property of the command. |
void |
setTotalAmount(java.math.BigDecimal totalAmount) Sets the totalAmount property of the command. |
void |
validateParameters() Checks the validity of customer-supplied parameters. |
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand |
accessControlCheck,
checkIsAllowed,
checkParameters,
checkResourcePermission,
createCommandExecutionEvent,
execute,
finalize,
getAccCheck,
getCommandContext,
getCommandIfName,
getCommandName,
getCommandStoreId,
getDefaultProperties,
getResources,
getStoreId,
getUser,
getUserId,
setAccCheck,
setCommandContext,
setCommandIfName,
setCommandStoreId,
setDefaultProperties |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait,
wait, wait |
Constructor Detail |
---|
public DoPaymentCmdImpl()
Method Detail |
---|
protected java.lang.String getCardBrand()
protected java.lang.Integer getCardExpiryMonth()
protected java.lang.Integer getCardExpiryYear()
protected java.lang.String getCardNumber()
public java.lang.String getContentType()
null
if the type is not known.
getContentType
in interface
DoPaymentCmd
String
containing the name of the MIME type of the return
data, or null if the type is not known. Since this command implementation does
not have return data, the method returns null
.protected java.lang.Long getOrderId()
public java.lang.String getOrderState()
getOrderState
in interface
DoPaymentCmd
protected TypedProperty getPaymentAttributes()
setPaymentAttributes(TypedProperty
paymentAttributes)
public byte[] getReturnData()
getReturnData
in interface
DoPaymentCmd
protected java.math.BigDecimal getTotalAmount()
public static boolean isCardExpiryDateValid(int expiryMonth, int expiryYear)
expiryMonth
- the calender month of the expiry date (1 for
January, 2 for February, and so on.)expiryYear
- the calender year of the expiry datepublic boolean isReadyToCallExecute()
isReadyToCallExecute
in class
AbstractECTargetableCommand
public void performExecute() throws ECException
performExecute
in interface
ECCommand
performExecute
in class
AbstractECTargetableCommand
ECException
public static java.lang.String removeSpaceAndHyphenFromString(java.lang.String aCardNumber)
aCardNumber
- the card number to be examined and strippedpublic void reset()
This is useful if the command instance is to be called multiple times with different command parameters.
reset
in class
AbstractECTargetableCommand
protected void setCardBrand(java.lang.String cardBrand)
cardBrand
- the credit card brandprotected void setCardExpiryMonth(java.lang.Integer cardExpiryMonth)
cardExpiryMonth
- the credit card Expiry
Monthprotected void setCardExpiryYear(java.lang.Integer cardExpiryYear)
cardExpiryYear
- the credit card Expiry
Yearprotected void setCardNumber(java.lang.String cardNumber)
cardNumber
- the credit card numberpublic void setOrderId(java.lang.Long orderId)
setOrderId
in interface
DoPaymentCmd
orderId
- the order ID of the Order for which payment is to be
processed.public void setPaymentAttributes(TypedProperty paymentAttributes)
This command requires the following Payment Attributes:
Keyword Value =========== ==================================== cardBrand The credit card brand. Represents the credit card type used. cardNumber The credit card number cardExpiryMonth The credit card exipration month cardExpiryYear The credit card exipration yearNote that this command stores the credit card brand in the PAYMETHOD column of the ORDPAYMTHD table and the size of the column is limited to five characters long.
setPaymentAttributes
in interface
DoPaymentCmd
paymentAttributes
- the requestProperties object that contains
all the command parameters are to be passed to this command.
Some of the optional Payment Attributes that may be passed to the command are:
Keyword Value =========== ==================================== cardBrand The credit card brand. cardNumber The credit card number cardExpiryMonth The credit card exipration month cardExpiryYear The credit card exipration yearRefer to the documentation for the command implementation class for the actual Payment Attributes that are defined for the command.
com.ibm.commerce.payment.commands.DoPaymentMPFCmdImpl.
public void setTotalAmount(java.math.BigDecimal totalAmount)
setTotalAmount
in interface
DoPaymentCmd
totalAmount
- the total price of the Order for which payment
is to be processed.public void validateParameters() throws ECException
validateParameters
in interface
ECCommand
validateParameters
in class
AbstractECTargetableCommand
ECException