SimpleOffline payment plug-in
The SimpleOffline plug-in is a payment plug-in provided in WebSphere Commerce. It enables payments to be processed offline or manually. Offline payments do not involve any direct communication with a payment back-end system. Instead, the SimpleOffline plug-in records events that have already happened outside of WebSphere Commerce. Transactions are recorded and maintained in the WebSphere Commerce database. The WebSphere Commerce Payments performs the database operations necessary to record all the payment transactions for this plug-in.
The following list details examples of offline payments:
- A customer is uncomfortable submitting a credit card number online and instead prefers a Cash on Delivery (COD) option.
- A customer submits credit card information but there is no relationship with an Acquirer for automatic approval. The merchant handles the transaction through a swipe box and records the approval.
- A merchant elects to collect payments manually through the Bill Me Later payment method or Pay Later payment method (an external payment system outside of the WebSphere Commerce scope)
In all cases a manual step is required to complete the transaction to receive payment. This manual step of editing the pending payment can be performed through the Payments menu in the WebSphere Commerce Accelerator.
The SimpleOffline plug-in can be used as is or it can be modified to suit your particular payment requirements. It can also be configured to support additional offline payment methods. Plug-in writers can use the plug-in as an example when developing their own plug-ins.
The SimpleOffline payment plug-in supports the following payment methods:
- VISA
- MASTERCARD
- AMEX
- COD
- BillMe
- PayLater
An XML file, SimpleOfflinePlugin.xml, contains a list of the unique parameters (plug-in properties) required for each supported payment method and for communication with the payment back-end system. The SimpleOfflinePlugin.xml file defines the required parameters for the payment methods supported in the different payment configurations, the length limitations of these parameters, and whether payments or credits should remain in a pending state when the payment transaction occurs successfully. Other parameters can be added if necessary to support unique payment method requirements, as long as they are defined in a Payment Rules configuration.
If record the approval decision made offline for a payment method (such as for the credit card payment methods), you can configure the SimpleOffline plug-in to keep the transaction in a pending state to prevent the order from being filled. If you consider the overall risk to be acceptable for a payment method (such as for COD, BillMe, or PayLater methods) the SimpleOffline plug-in can be configured to not have the transaction pend for manual approval. You can set an attribute (keepPendingStatus) in the SimpleOfflinePlugin.xml file to specify whether the transactions for a payment method should be kept in pending state for a manual review or not.
The following XML file example is provided here as an illustration of the SimpleOfflinePlugin.xml file. The file can be modified or extended to support the payment methods required by a store. Plug-in writers can use this example to understand how to create a comparable file.
SimpleOfflinePlugin.xml
<?xml version="1.0" encoding="UTF-8"?> <PaymentMethods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PaymentMethod.xsd"> <PaymentMethod name="VISA" paymentConfiguration="default" keepPendingStatus="true"> <Property name="account" minLength="1" maxLength="16" /> <Property name="cc_brand"/> <Property name="expire_month"/> <Property name="expire_year"/> </PaymentMethod> <PaymentMethod name="MASTERCARD" paymentConfiguration="default" keepPendingStatus="true"> <Property name="account"/> <Property name="cc_brand"/> <Property name="expire_month"/> <Property name="expire_year"/> </PaymentMethod> <PaymentMethod name="AMEX" paymentConfiguration="default" keepPendingStatus="true"> <Property name="account"/> <Property name="cc_brand"/> <Property name="expire_month"/> <Property name="expire_year"/> </PaymentMethod> <PaymentMethod name="COD" paymentConfiguration="default" keepPendingStatus="false"> <Property name="billto_address1"/> <Property name="billto_address2"/> <Property name="billto_address3"/> <Property name="billto_city"/> <Property name="billto_stateprovince"/> <Property name="billto_zipcode"/> <Property name="billto_country"/> </PaymentMethod> <PaymentMethod name="BillMe" paymentConfiguration="default" keepPendingStatus="false"> <Property name="billto_address1"/> <Property name="billto_address2"/> <Property name="billto_address3"/> <Property name="billto_city"/> <Property name="billto_stateprovince"/> <Property name="billto_zipcode"/> <Property name="billto_country"/> </PaymentMethod> <PaymentMethod name="PayLater" paymentConfiguration="default" keepPendingStatus="false"> <Property name="billto_address1"/> <Property name="billto_address2"/> <Property name="billto_address3"/> <Property name="billto_city"/> <Property name="billto_stateprovince"/> <Property name="billto_zipcode"/> <Property name="billto_country"/> </PaymentMethod> </PaymentMethods>The file uses the following attributes:
- paymentConfiguration
- The payment configuration ID in the POLICY database table that identifies a set of XML configuration files to be used for payment processing. A value of "default" means the payment method should use the default set of configuration files.
- keepPendingStatus
- A value of "true" means that any transactions using this payment method will have payments go into a pending state. To move the payment out of a pending state, an action must be taken by a Customer Service Representative in the WebSphere Commerce Accelerator to move the payment out of pending state (such as to perform a manual approval). A value of "false" means that the payment transaction will not automatically go into a pending state.
The following table describes the properties used by this plug-in. The property data type for these parameters is String type. Length limitations for properties are identified through the minLength and maxLength attributes in the XML file. Data that is expected by the SimpleOffline plug-in to process financial transactions is defined as property names in the SimpleOfflinePlugin.xml file for each payment method. By default, WebSphere Commerce collects this required data for the plug-in.
The data required by the WebSphere Commerce Payments plug-in is determined by the Cashier profile used with the payment cassette. The following Cashier profiles are provided to support the WebSphere Commerce Payments plug-in:
- For the OfflineCard cassette - WCPPlugin_OfflineCard.profile
- For the CustomOffline cassette - WCPPlugin_CustomOffline_COD.profile (for cash on delivery) or WCPPlugin_CustomOffline_BillMe.profile (for Bill Me Later)
- For the Cassette for BankServACH - WCPPlugin_BankServACH.profile
- For the Cassette for Paymentech profile - WCPPlugin_Paymentech.profile
- For the Cassette for VisaNet - WCPPlugin_VisaNet (for regular credit cards). A profile for VisaNet with purchasing card support is not provided.
These profiles are similar but not identical to Cashier profiles provided with WebSphere Commerce Payments.
Property Description account Payment card number (personal account number) cc_brand Payment card brand expire_month Payment card expiration date expire_year Payment card expiration year billto_address Street of billing address billto_city City of billing address billto_stateprovince State or province of billing address billto_zipcode Postal (zip) code of billing address billto_country Country code of billing address
Location
The SimpleOffline plug-in package contains:
- A stateless session bean:
- com.ibm.commerce.payments.plugin.simpleoffline.beans.SimpleOfflineBean
- com.ibm.commerce.payments.plugin.simpleoffline.beans.SimpleOffline
- com.ibm.commerce.payments.plugin.simpleoffline.beans.SimpleOfflineHome
- SimpleOfflinePlugin.xml file - XML file containing a list of the unique parameters required for each payment method supported by the plug-in
- PaymentMethod.xsd file - the XML schema document for a SimpleOffline plug-in special descriptor containing a list of the unique parameters (plug-in properties) required for each supported payment method and for communication with the payment back-end system.
- PluginDeployment.xml - the payment plug-in deployment descriptor for the SimpleOffline plug-in which defines the plug-in to the WebSphere Commerce Payments
- XML parser for the supported payment methods
The .jar file for the plug-in and plug-in deployment descriptor are located in the following directories:
WC_eardir/Payments-Plugin-SimpleOffline.jar- WC_eardir/xml/config/ payments/ppc/plugins/SimpleOffline/PluginDeployment.xml
SimpleOffline plug-in security
The SimpleOffline plug-in delegates the encryption and storage of sensitive data in the database to the WebSphere Commerce Payments. By default (as provided with the plug-in), the following keywords are configured as sensitive data in the PaymentSystemPluginMapping.xml file for the SimpleOffline plug-in:
- cc_cvc (card verification code for the credit card)
- cc_nameoncard (name on credit card)
You can modify the PaymentSystemPluginMapping.xml file to use any new keywords.
This data is retained after a pending credit card payment is approved manually in an offline transaction. To delete this data, Customer Service Supervisors (or users with the appropriate authority) can use the WebSphere Commerce Accelerator to edit the extended data for the transaction.
The plug-in does not have any access control. It grants the accesses permitted by the Payment Rules subcomponent and the WebSphere Commerce Payments.
(C) Copyright IBM Corporation 1996, 2006. All Rights Reserved.