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:

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:

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:

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:

The .jar file for the plug-in and plug-in deployment descriptor are located in the following directories:

 

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:

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.