SimpleOffline plug-in

The SimpleOffline plug-in 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 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 by using a swipe box and records the approval.
  • A merchant elects to collect payments manually using the Bill Me Later payment method or Pay Later payment method (an external payment system outside of the WebSphere Commerce scope)

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. The SimpleOffline plug-in supports the following payment methods:

  • VISA
  • MASTERCARD
  • AMEX
  • COD
  • BillMeLater
  • PayLater

Contents and 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.
  • PluginDeployment.xml - the payment plug-in deployment descriptor for the SimpleOffline plug-in which defines the plug-in.
    
    <?xml version="1.0" encoding="UTF-8"?>
    <Plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../base/PaymentPlugin.xsd">
      <PluginInformation 
            jndi="ejb/com/ibm/commerce/payments/plugin/simpleoffline/beans/SimpleOfflineHome" 
            home="com.ibm.commerce.payments.plugin.simpleoffline.beans.SimpleOfflineHome"
                    name="SimpleOffline" 
                    version="1.0.0" 
                    vendor="IBM"
                    independentCredit="true"
                    virtualTerminal="none">
      </PluginInformation>
      <ProtocolProperties>
      <ProtocolProperty name="card_number" keep="true"/>
      <ProtocolProperty name="payment_method" keep="true"/>
      <ProtocolProperty name="account" keep="true"/>
      <ProtocolProperty name="cc_brand" keep="true"/>
      <ProtocolProperty name="expire_month" keep="true"/>
      <ProtocolProperty name="expire_year" keep="true"/>
      <ProtocolProperty name="billto_firstname" keep="true"/>
      <ProtocolProperty name="billto_lastname" keep="true"/>
      <ProtocolProperty name="billto_address1" keep="true"/>
      <ProtocolProperty name="billto_city" keep="true"/>
      <ProtocolProperty name="billto_stateprovince" keep="true"/>
      <ProtocolProperty name="billto_zipcode" keep="true"/>
      </ProtocolProperties>
    </Plugin>
    

    The SimpleOffline plug-in does not require the use of additional properties. Required keywords can be defined in this file by using the <ProtocolProperties> and <ProtocolProperty> elements. Required keywords can be defined in the plug-in deployment descriptor, the PaymentSystemPluginMapping.xml file, or both.

  • For supported payment methods, an XML parser is provided.

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

  • WC_eardir/Payments-Plugin-SimpleOffline.jar
  • WebSphere Commerce Developer WC_eardir/xml/config/ payments/ppc/plugins/SimpleOffline/PluginDeployment.xml

SimpleOffline plug-in security

By default, 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 add new keywords to the PaymentSystemPluginMapping.xml file.

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.

SimpleOffline payment and credit state handling

The SimpleOffline plug-in moves payment and credit states according to the payment plug-in specification, with the following exception. The plug-in will keep the payment and credit objects in the "ing" state (Approving, Crediting) when needed because the transaction is not being processed in real time. The plug-in sets the state field of the FinancialTransaction object.

When the SimpleOffline plug-in keeps a payment or credit transaction pending, a Customer Service Representative (CSR) must use the Payments menu in the WebSphere Commerce Accelerator to edit the payment or credit so that it can move to the next state (Success or Failed). The edit transaction moves the payment and credit from the "ing" state.

A manual step is required to complete the transaction to receive payment. This manual step of editing the pending payment can be performed by using the Payments menu in the WebSphere Commerce Accelerator. When the payment state is Approving, an Approve action was performed but the results are still unknown. The operation will eventually succeed or fail. If the payment method is defined to keep in pending state (keepPendingStatus="true"), the target state of the Approve action is Approving. Payment plug-in controller will change the state to Approved or Failed accordingly based on the status value selected by the CSR when editing the pending transaction.

Likewise, when a credit state is Crediting, a Credit action was performed but the results are still unknown. The operation will eventually succeed or fail. If the payment method is defined to keep in pending state (keepPendingStatus="true"), the target state of the Credit action is Crediting. Payment plug-in controller will change the state to Credited or Failed accordingly.

SimpleOffline plug-in messages

The SimpleOffline plug-in does not use any special messages resource bundle and therefore has no additional properties files for message translation. It uses the standard messaging functions described in the Payment plug-in specification.