A payment plug-in is a self-contained software component that serves as a proxy for a payment back-end system. Payment plug-ins are responsible for payment protocol and protocol data validation. A payment plug-in receives data about a financial transaction, sends the request to the payment back-end system, receives a response from that system, decides what data should be stored, and returns the appropriate information to the Payment Plug-in Controller. The Payment Plug-in Controller performs the database operations necessary to record all the financial transactions for a payment plug-in.
Payment plug-ins are simpler and less expensive alternatives to the use of traditional payment cassettes, and offer an easier way to integrate with payment systems.
When a payment plug-in is added to the WebSphere Commerce environment, the foundation of WebSphere Commerce remains intact. The payment plug-in modifies the function of WebSphere Commerce payments processing through interaction with the Payment Plug-in Controller. A plug-in is identified to the Payment Plug-in Controller through a plug-in deployment descriptor (XML file). The deployment descriptor configures the plug-in in WebSphere Commerce and enables the plug-in to work properly.
Although some plug-ins are provided in WebSphere Commerce, a payment plug-in specification is available to enable plug-in writers to develop their own plug-ins for use in a WebSphere Commerce environment. Plug-ins can be simple in nature (serving as a proxy to a payment back-end system) or more complex, such as an interface to an accounting system, or some other system that serves a particular purpose (for example, a gift certificate processing system). Regardless of their complexity, plug-ins can be implemented as lightweight plug-ins.
Payment plug-ins are responsible for implementing the following mandatory Payment APIs. As an option, query-related APIs can also be implemented to extend the plug-in interface.
Plug-in APIs
checkPaymentInstruction() validatePaymentInstruction() approve() reverseApproval() deposit() reverseDeposit() approveAndDeposit() getMessage() credit() reverseCredit()Query-related APIs
getAvailableBalance() getCredit() getPayment()