Pending and timeouts
When the orders function and payment plug-ins are used in WebSphere Commerce, WebSphere Commerce Payments ensures the following occurs:
- Only a single approve transaction is issued against a payment at a time.
- Only a single credit transaction is issued against a credit at a time.
- Only a single transaction will be in a pending state for a given payment at the same time.
The WebSphere Commerce Payments will allow a reversal operation to go through a plug-in with a pending transaction as long as the reverse operation and the transaction match.
For example, in this case the transactions match:
Approve --->pending Reverse Approve --->OKIn this case the transactions do not match because a deposit transaction has occurred between the approval and the reverse approval:
Approve ---> OK Deposit ---> pending Reverse Approve ---> errorTransaction status can be viewed in one of the following ways:
- At the API level
- At the user interface level (status of order or payment)
- During order capture
A pending state indicates that a particular transaction has not yet finished for a payment or credit transaction. It could mean that a plug-in uses an offline protocol to handle transactions, thereby some external invention or action by a human must take place to move the payment or credit into another state. Offline processing typically requires human interaction to process transactions over the phone or through a swipe machine.
A payment or credit can also be in pending state for other reasons, such as when timeouts occur on the network or processing through the network is extremely slow.
A plug-in can be configured to always have transactions for a particular payment method to go into a pending state. For an example, refer to the keepPendingStatus element in the SimpleOfflinePlugin.xml file used by the SimpleOffline plug-in provided with WebSphere Commerce (<PaymentMethod name="AMEX" paymentConfiguration="default" keepPendingStatus="true").
(C) Copyright IBM Corporation 1996, 2006. All Rights Reserved.