Problems Getting "Prepaid" Payment Option To Work (Doc ID 556536.1)

Last updated on SEPTEMBER 26, 2016

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.0.0.0 and later
Information in this document applies to any platform.
***Checked for relevance on 19-Jun-2012***
***Checked for relevance on 27-May-2014***


Symptoms

Problem to create an account with "Prepaid" payment option in Customer Center.

On Customer Center side the "Prepaid" payment method has been added. When using Customer Center
to create a business account with "Prepaid" payment type, the user went through all of the panels
and on the Payment panel "Prepaid" was selected from the payment type drop-down box. After hitting
OK , an error message is logged in the console:

PWizard::showWizardPage exception, e = java.lang.NullPointerException
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:396)
at com.portal.app.cc.PPaymentPanel.refreshPaymentsData(PPaymentPanel.java:2403)
at com.portal.app.cc.PPaymentPanel.enteringPage(PPaymentPanel.java:978)
at com.portal.app.cc.PPaymentWizard.enteringPage(PPaymentWizard.java:169)
at com.portal.app.cc.comp.PValidatingWizard.enterPage(PValidatingWizard.java:383)
at com.portal.app.cc.comp.PValidatingWizard.propertyChange(PValidatingWizard.java:320)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:270)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:291)
at com.portal.app.comp.PWizard.showWizardPage(PWizard.java:443)
at com.portal.app.comp.PWizard.processNext(PWizard.java:369)
at com.portal.app.comp.PWizard$3.actionPerformed(PWizard.java:213)
...

The Payment Panel had nothing under the Payment Options. When tried to complete the creation,
Customer Center raises error as : "Cannot create account. See your Portal System Administrator."

cm.pinlog logged the following error:

E Wed Jan 9 11:05:03 2008 myhost cm:23534 fm_cust_create_billinfo.c:327
1:mypc:CustomerCenter:0:AWT-EventQueue-0:63:1199898303:0
   op_cust_create_billinfo error
   <location=PIN_ERRLOC_FLIST:6 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1
errno=PIN_ERR_NOT_FOUND:3>
   <field num=PIN_FLD_PAY_TYPE:3,7852 recid=0 reserved=0 reserved2=0 time(sec:usec)=0:0>
   <facility=0 msg_id=0 version=0>
E Wed Jan 9 11:05:03 2008 myhost cm:23534 fm_cust_create_acct.c:889
1:mypc:CustomerCenter:0:AWT-EventQueue-0:63:1199898303:0
   fm_cust_create_billinfo error
   <location=PIN_ERRLOC_FLIST:6 class=PIN_ERRCLASS_SYSTEM_DETERMINATE:1
errno=PIN_ERR_NOT_FOUND:3>
   <field num=PIN_FLD_PAY_TYPE:3,7852 recid=0 reserved=0 reserved2=0 time(sec:usec)=0:0>
   <facility=0 msg_id=0 version=0


The input flist for PCM_OP_CUST_COMMIT_CUSTOMER didn't have PIN_FLD_PAYINFO and PIN_FLD_BILLINFO arrays like the other type of accounts.

-- Steps To Reproduce:
The issue can be reproduced with the following steps:

Followed the steps in the documentation for "creating a custom payment method".
1) Create a custom panel that extends the Portal class com.portal.app.cc.comp.PIAPaymentTypePanel.
2) Create an interface that extends com.portal.app.ccare.comp.PIAPaymentTypePanelBean.
3) Create a controller class that extends PIAComponentCollectionBean and implements the interface
you created in the previous step.

For a "prepaid" payment type, it does not contain a specific UI panel (ex. no additional name info
is required). So user used only the com.portal.app.cc.comp.PIADefaultPaymentTypePanel instead of
doing steps 1-3.

4) Add the following lines to the Customized.properties file:
consumerpayment.options=invoice creditcard ddebit prepaid
businesspayment.options=invoice creditcard ddebit prepaid
maintenance.options=invoice creditcard ddebit prepaid
prepaid.selector=10000
10000.class=com.portal.app.cc.comp.PIADefaultPaymentTypePanel

5) Add the following lines to the CustomizedResources.properties file:
payType.format= {0,choice,0#Unknown|10000#Prepaid|10001#Invoice|10002#Debit|10003#Credit
Card|10004#Direct Debit (Fr)|10005#Direct Debit|10006#Smart Card|10007#Nonpaying
child|10008#Unknown|10009#Undefined|10010#Guest|10011#Cash|10012#Check|10013#Wire-Transer|10014#Inter Bank Payment order|10015#Postal order|10016#Voucher}
methodofpayment.10000=Prepaid

On the server side, /config/payment for the prepaid pay type 10000 is setup as following as it was
out-of-box.

0 PIN_FLD_PAY_TYPES ARRAY [10000] allocated 4, used 4
1    PIN_FLD_PAYINFO_TYPE STR [0] "/payinfo"
1    PIN_FLD_PAYMENT_EVENT_TYPE STR [0] ""
1    PIN_FLD_REFUND_EVENT_TYPE STR [0] ""
1    PIN_FLD_OPCODES ARRAY [0] allocated 4, used 4
2       PIN_FLD_EVENT_TYPE STR [0] ""
2       PIN_FLD_FLAGS INT [0] 0
2       PIN_FLD_NAME STR [0] "PCM_OP_INVALID"
2       PIN_FLD_OPCODE INT [0] 0
1    PIN_FLD_OPCODES ARRAY [1] allocated 4, used 4
2       PIN_FLD_EVENT_TYPE STR [0] ""
2       PIN_FLD_FLAGS INT [0] 0
2       PIN_FLD_NAME STR [0] "PCM_OP_INVALID"
2       PIN_FLD_OPCODE INT [0] 0
1    PIN_FLD_OPCODES ARRAY [2] allocated 4, used 4
2       PIN_FLD_EVENT_TYPE STR [0] ""
2       PIN_FLD_FLAGS INT [0] 0
2       PIN_FLD_NAME STR [0] "PCM_OP_INVALID"
2       PIN_FLD_OPCODE INT [0] 0


Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms