My Oracle Support Banner

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

Last updated on FEBRUARY 27, 2018

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.0.0.0 and later
Information in this document applies to any platform.

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

To view full details, 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 a vibrant support community of peers and Oracle experts.