Implementation Guide for Oracle Self-Service E-Billing > Customizing Payment >

About Payment Plug-Ins


The Oracle Self-Service E-Billing Payment plug-in is a callback, which allows you to add code to extend the functionality of Oracle Self-Service E-Billing. The following payment plug-ins are included with Oracle Self-Service E-Billing:

  • IAchCheckSubmitPlugIn for the ACH cartridge when submitting checks to ACH.
  • IPayPalCreditCardSubmitPlugIn for the PayPal Payflow Pro cartridge when submitting credit cards to PayPal Payflow Pro.
  • IPaymentReminderPlugIn for the job pmtPaymentReminder
  • IRecurringPaymentPlugIn for the job pmtRecurPayment

Each plug-in comes with a default implementation. It is recommended that you derive your plug-in from the default implementation to ensure that future updates to the plug-in will not break your code. The plug-ins and sample code are provided in Sample Plugin Code on page 87.

ACH Check Submit Plug-In

The ACH cartridge supports a plug-in to modify ACH file generation. When the pmtCheckSubmit job runs for ACH, it calls the methods of the implementation of IAchCheckSubmitPlugIn (defined in Payment Settings) during numerous events. The default implementation is AchCheckSubmitPlugIn, which does nothing.

Figure 18 shows the workflow for the pmtCheckSubmit job plug-in.

Figure 18. pmtCheckSubmit Job Plug-in Workflow
Click for full size image

Writing a Plug-in

You can use the pmtCheckSubmit plug-in to change the default name of the ACH file, create a remittance file in addition to the standard ACH file, deny a check or change the default information put into the ACH file. Create your own implementation to accomplish these tasks. See Accessing Oracle Self-Service E-Billing Javadoc for information about writing an implementation of IAchCheckSubmitPlugIn.

To create your own implementation

  1. Derive your implementation from the default implementation AchCheckSubmitPlugIn.
  2. Overwrite the methods whose behavior you want to change.
  3. When compiling, include Payment_common.jar and Payment_client.jar into your java classpath.
  4. Package this class into Payment_custom.jar of each EAR file. See Packaging Oracle Self-Service E-Billing Payment Custom Code for information about redeploying EAR files.
  5. Change the Payment Settings to point to your new class.

Using a Plug-in to Write ACH Addenda Records

You can use the pmtCheckSubmit plug-in to write addenda records for ACH. The implementation called AddendaCheckSubmitPlugIn gets the invoice information of a payment and writes them out as addenda records. For more information about this class or its implementation details, see Accessing Oracle Self-Service E-Billing Javadoc, and then follow the steps in Writing a Plug-in to write your own implementation.

PayPal Payflow Pro Credit Card Payment Plug-in

Unlike the ACH plug-in, the PayPal Payflow Pro credit card plug-in CreditCardSubmit is invoked from both the front end (when an instant credit card is made) and the back end (when credit card submit job runs). This plug-in allows you to audit the credit card payment, deny it, or even changes the HTTP request sent to PayPal Payflow Pro HTTP server. Check the API IPayPalCreditCardSubmitPlugIn for details.

Figure 19 shows the workflow of the plug-in when an instant credit card payment is submitted:

Figure 19. Workflow of the Plug-in when an Instant Credit Card Payment is Submitted

Figure 20 shows the workflow of the plug-in when the pmtCreditCardSubmit job runs for PayPal Payflow Pro:

Figure 20. Workflow of the Plug-in when the pmtCreditCardSubmit Job Runs for PayPal Payflow Pro
Click for full size image

Writing a Credit Card Plug-in

The default implementation of IPayPalCreditCardSubmitPlugIn, PayPalCreditCardSubmitPlugIn, does nothing. You must write an implementation.

To write your own implementation

  1. Derive your implementation from PayPalCreditCardSubmitPlugIn.
  2. Overwrite the methods for which you want to change the default behavior.
  3. When compiling, include Payment_common.jar and Payment_client.jar in your java class path.
  4. Package this class into Payment_custom.jar of each EAR file.
  5. Change the Payment Settings of that DDN to use the new plug-in implementation.

Payment Reminder Plug-in

The payment reminder plug-in is invoked when the pmtPaymentReminder job runs. pmtPaymentReminder performs the following functions:

  • Regular payment reminders
  • Check status notification
  • Credit card status notification

There are corresponding plug-ins for the preceding tasks. Refer to com.edocs.payment.tasks.reminder.IPaymentReminderPlugIn for details.

Figure 21 shows the workflow for the plug-in of the pmtPaymentReminder job:

Figure 21. pmtPaymentReminder Job Plug-in Workflow
Click for full size image
Creating a pmtPaymentReminder Plug-in

The default plug-in implementation, com.edocs.payment.tasks.reminder.PaymentReminderPlugIn, does nothing.

To implement your own plug-in

  1. Derive your implementation class from PaymentReminderPlugIn.
  2. Overwrite the methods for you want to change behavior.
  3. When compiling, include Payment_common.jar and Payment_client.jar in your javac class path.
  4. Package this class into Payment_custom.jar of each EAR file.
  5. Update the pmtPaymentReminder job configuration to use the new class.

Recurring Payment Plug-in

The recurring payment plug-in is called when the pmtRecurPayment job runs. You can use this plug-in to prevent a recurring payment from being scheduled based on business rules. Or, you can extract some indexed fields from the index table and put them into the payment being scheduled. The implementations: com.edocs.tasks.payment.recur_payment.RecurringPaymentPlugIn, is the default one and it does nothing.

The file SampleRecurringPlugin.java provides an example implementation. Figure 22 shows the workflow of recurring payment and how the plug-in works.

Figure 22. Recurring Payment Workflow
Click for full size image
Writing a Plug-in

The default plug-in implementation, com.edocs.payment.tasks.recur_payment. RecurringPaymentPlugIn, does nothing.

To implement your own plug-in

  1. Derive your implementation class from RecurringPaymentPlugIn.
  2. Overwrite the method that you want to change behavior of.
  3. When compiling, include Payment_common.jar and Payment_client.jar in your javac class path.
  4. Package this class into Payment_custom.jar of each EAR file.
  5. Update the pmtRecurPayment job configuration to use the new class.

Populating Index Fields in Payment Flexible Fields

The plug-in com.edocs.paymenttasks.recur_payment.SampleRecurringPlugIn demonstrates how to use a plug-in to populate the flexible fields of the Oracle Self-Service E-Billing Payment database (ICheck or ICreditCard) with the indexed information from the indexer table.

Implementation Guide for Oracle Self-Service E-Billing Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices.