- All Implemented Interfaces:
- BusinessObject, BusinessProcessor, PaymentProcessor
public class PayflowProProcessor
- extends BasePayPalNVPProcessor
- implements PaymentProcessor
Processes a payment in the store for a given user's cart. This implementation
processes a request through PayPal Payflow Pro. The
method manages the process of sending a request to Payflow Pro, and handling
the response appropriately. It follows these steps:
- Figures out the transaction type (sale, authorize,
authorize/authenticate, or authorize/authenticate/sale) from the database
settings and the user's current state.
- Builds the request to Payflow Pro as a
Map, taking as
input the current user's state, and various database settings.
- Converts the request into a url-encoded query string to pass as Payflow
Pro's "parmlist" parameter.
- Initializes the connection to Payflow Pro and sends the request.
- Handles any errors by setting "resultCode" appropriately in the
Map that is returned. If no response comes back from Payflow
Pro, a result code 10000 is used. If the Payflow Pro result code is not 0,
which also indicates an error, that code is used as this method's
"resultCode" and this method returns it.
- If a successful response is received, checks if the transaction type for
the user is AA or AAS (authorize/authenticate, or
authorize/authenticate/sale), in which the response must be "authenticated".
This means the AVS and CSC responses are checked against what's defined as
acceptable in the Payflow Pro Advanced Settings in the administrator. Note
that if no CSC response is present, it is set to "X".
- If the user is not deemed authenticated, a "resultCode" of 10001 is
- If the user is authenticated and the transaction type in effect is AAS
(authorize/authenticate/sale), an immediate delayed capture on the previous
authorization is performed, using the same parameters. Any errors from this
second request are handled in the same way as above.
- Assuming the transaction succeeds, a new record is written to the
sscPayment database table and a resultCode of 0 is returned.
- David Tobey
- See Also:
(package private) static org.apache.commons.logging.Log
|Fields inherited from class com.softslate.commerce.businessobjects.payment.BasePayPalNVPProcessor
CERT_PATH, COMMENT1, COMMENT2, CUSTOMER_CODE, CUSTOMER_REF, DESCRIPTION, HOST_ADDRESS, HOST_PORT, PARTNER, PASSWORD, PO_NUMBER, PROXY_ADDR, PROXY_LOGON, PROXY_PASSWD, PROXY_PORT, TIME_OUT, USER, VENDOR
|Methods inherited from class com.softslate.commerce.businessobjects.core.BaseBusinessProcessor
formatDateTime, formatPrice, getAppComponents, getAppSettings, getAttributeIDs, getBusinessObjectFactory, getDaoFactory, getProductIDs, getSettings, getUser, initialize, loadMatchingSkus, parseDateTime, parseResponseData, prepareRequestData, sendHTTPPost, setAppComponents, setAppSettings, setBusinessObjectFactory, setDaoFactory, setSettings, setUser, utils
|Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
static org.apache.commons.logging.Log log
public java.util.Map process(java.util.Map parameters)
- Description copied from class:
- Subclasses must override this method to execute processing. Called by
- Specified by:
process in class
parameters - A
Map containing the values of the user's
submitted payment information.
Map containing a least one key named
"resultCode", which contains a String parsable into an int,
representing the results of the processing. 0 for the resultCode
indicates success. Optionally, the
Map may include
additional keys, such as "resultMessage", a string describing the
results of the processing.
public java.lang.String getTransAuthLevel()
public boolean levelMatchFound(java.lang.String cust,
protected java.util.Map preparePaypalRequestAcutalPayload(java.util.Map params,
- Specified by:
preparePaypalRequestAcutalPayload in class
public boolean isAuthenticated(java.lang.String transAuthLevel,
protected void setPaymentVariablesToPersist(Payment payment,
- Specified by:
setPaymentVariablesToPersist in class
Copyright ? SoftSlate, LLC 2003?2005