You are on page 1of 18

TROUBLESHOOTING U TILITIES

TOOLS AND

Oracle Receivables R11i Credit Card Processing

Prepared by Mario Mendoza

Creation Date: Last Updated:

23-APR-01 27-FEB-02

NOV-01Updated by: Mario Mendoza Version: 1.2

Copyright (C) 2000-01 Oracle Corporation All Rights Reserved

Bug Diagnostics and Escalations


CREDITCARD2.DOC Oracle/Client Confidential - For internal use only

Major Contributors

Name Ramakant Alat Jonathan Leybovich Srihari Koukuntla

Position

Change Record

Date 23-Apr-2001 16-Nov-2001 15-Jan-2002 27-Feb-2002 mmendoza mmendoza Mmendoza Mmendoza

Author

Version 1.0 1.2 1.2.1 1.2.2

Change Reference Created Rewrote. Appended iPayment admin and FAQs Verisign/Cybercash note Updates suggested by Dianna Ferguson

Technical Reviewers

Name Jonathan Leybovich Srihari Koukuntla Dianna Ferguson

Position

Initial and Date

Credit Card Processing

Oracle/Client Confidential - For internal use only

Contents
Major Contributors .....................................................................................................................................................................2 Change Record............................................................................................................................................................................2 Technical Reviewers ...................................................................................................................................................................2 OVERVIEW .......................................................................................................................................................................................1 Oracle iPayment .........................................................................................................................................................................1 Cybercash ...................................................................................................................................................................................1 Oracle Accounts Receivables ......................................................................................................................................................1 IPAYMENT AND CYBERCASH SETUP .................................................................................................................................................2 ORACLE RECEIVABLES SETUP ..........................................................................................................................................................3 CREATING AN AUTOMATIC RECEIPT AND REMITTANCE TEST CASE ..................................................................................................4 Create Transactions ....................................................................................................................................................................4 Create Automatic Receipt Batch .................................................................................................................................................4 Approve Automatic Receipt Batch ..............................................................................................................................................4 Remit Batch ................................................................................................................................................................................4 AR AND IPAYMENT APIS .................................................................................................................................................................5 Determining PMT_UTIL version ................................................................................................................................................5 VERIFYING IPAYMENT FUNCTION.....................................................................................................................................................6 Oracle iPayment patches ............................................................................................................................................................6 Oracle iPayment FAQs ...............................................................................................................................................................6 RECEIVABLES UTILITIES (ORAAUTH.SQL AND ORACAPTURE.SQL) ....................................................................................................7 oraauth.sql ..................................................................................................................................................................................7 oracapture.sql .............................................................................................................................................................................8 Sample Output.............................................................................................................................................................................8 Accessing iPayment ECServlet directly ......................................................................................................................................9 DEBUG AND ERROR LOGS ..............................................................................................................................................................10 AR Automatic Receipt logs........................................................................................................................................................10 Apache access log .....................................................................................................................................................................10 Debug and Error logs, continued... ..........................................................................................................................................11 iPayment debug log...................................................................................................................................................................11 ERROR CODES................................................................................................................................................................................12 0001 - 0008 Payment System Messages ....................................................................................................................................12 FREQUENTLY ASKED QUESTIONS...................................................................................................................................................14 I need to run a testcase consisting of more than one record for my automatic receipt batch. Are there other credit card numbers I can use? ...................................................................................................................................................................14 How do I simulate common errors like a declined or expired credit card? ..............................................................................14 How do I interpret theApache access log? ...............................................................................................................................14 How can I find out the status of my transaction in iPayment? For example, how do I know whether a transaction has been authorized or captured? ............................................................................................................................................................14

Credit Card Processing

Oracle/Client Confidential - For internal use only

Overview
This guide deals with the integration between iPayment and Accounts Receivables, as it relates to Credit Card processing in 11i. Its primary audience are Receivables Support analysts. It should benefit anyone who implements and troubleshoots the credit card processing flow within Oracle Applications.

Oracle iPayment

Oracle iPayment is a complete electronic payment software solution that application developers, system integrators and others can use to "payment-enable" their Web or client-server applications. Oracle iPayment is a bridge between applications and electronic payment systems, such as Cybercash and Icverify. This document is based largely on a Cybercash BackEnd Payment (BEP) system and Oracle Applications 11.5.5 integration. Most concepts here should be applicable to other BEP systems. For more information about Oracle iPayment and setting up a payment server, see: Oracle iPayment web site http://ipayment.us.oracle.com Oracle iPayment Implementation Guide http://ipayment.us.oracle.com/docs/11iRUP1/iby115ig.pdf
Cybercash

Cybercash is one of various BEP systems, that enables merchants and applications to accept credit card transactions online as payment for various goods and services. To integrate Oracle Applications with Cybercash, youll need a merchant account and the MCK (Merchant Connection Kit) software from Cybercash. For more information about Cybercash, visit: Cybercash website http://www.cybercash.com NOTE: In May 2001, Verisign acquired the assets of Cybercash, including their Cash Register payment gateway. Verisign intends to incorporate existing Cybercash merchants into the Verisign Payflow Service by first quarter of 2002.

Oracle Accounts Receivables

Oracle Receivables uses Automatic Receipts and Remittance feature to handle credit card processing. The Automatic Receipts feature handles the creation of receipts for customer with predefined payment agreements. Remittances initiate the transfer of funds from the customers bank account to the users account on the receipt maturity date. Credit cards are treated as a method of payment, and requires a specific setup within the automatic receipts functionality. For a description of this feature, see the following:

Credit Card Processing - High Level Design http://www-apps.us.oracle.com/ar/designs-released/r11i/creditcrd/creditcard_hilv.wrd Oracle Receivables Users Guide -- see Automatic Receipts and Remittances http://pkm.us.oracle.com/%7Egseiden/11idoc/acrobat/115arug.pdf

1 Credit Card Processing Oracle/Client Confidential - For internal use only

iPayment and Cybercash Setup


This document is based on an 11.5.5 Vision demo installation with the following additional components: Cybercash Merchant Connection Kit (MCK) version 3.3. iPayment patch 1832886 Oracle Receivables Patchset F

The integration of iPayment with Cybercash is based on WEBIV note 137034.1 by Dan Cutts, How to setup iPayment to work with Cybercash. This document guides you through the setup of Apache webserver, and configuration of the MCK and Cybercash and EC servlets. Upon completing these steps, you should be able to perform authorization and capture operations through the iPayment administration webpage, as shown below. See the iPayment Users Guide for more information about each of these functions:

2 Credit Card Processing Oracle/Client Confidential - For internal use only

Oracle Receivables setup


This details the minimal setups required within Oracle Applications to enable authorization and capture operations for credit card transactions, and accessing the iPayment and Cybercash BEP, as earlier described.

As System Administrator responsibility: 1. 2. 3. 4. Navigate to Application/Documents. Create a document category for your payment method and assign a document sequence with automatic numbering. See the Setup Document Sequences section of the Users Guide. Navigate to Profile/System. Verify the profile Sequential Numbering is set to Always or Partially Used for at least the Receivables responsibility or User. Navigate to Profile/System. Verify the profile ICX: Oracle Payment Server URL is correctly setup. This should point to your EC Servlet path, e.g. http://hostname.domain.com:<port number>/servlets/ecapp [Optional] Navigate to Profile/System. Set the profile AR: Mask Bank Account Numbers. This masks the display of credit card numbers in log files and the application forms.

As Receivables Manager responsibility: 1. 2. Navigate to the Banks form, and create a bank for accepting deposits, e.g. Remittance Bank. Navigate to Receipt Class form, create an automatic receipt class for Credit Cards, e.g. Credit Card Receipt Class. Verify the payment type is Credit Card, and Merchant Ref is the Payee that was setup in iPayment Administration webpage. This corresponds to the active payeeid from iby_payee table. Navigate to Banks form. Create a customer bank or use the predefined Credit Card Bank for credit card transactions. The Credit Card Bank has a predefined branch called Credit Card Branch. Enter the Credit Card Number as the bank account number under a bank branch. The Expiration Date is entered in the inactive date field. Navigate to Customers form. Assign the specific credit card bank account to the customers bill to site. If you would like the Automatic Payment Method to default to all invoices for a customer, assign the Automatic Payment Method that youve associated to your credit card receipt class, to the customers bill to site.

3.

4.

3 Credit Card Processing Oracle/Client Confidential - For internal use only

Creating an Automatic Receipt and remittance test case


This describes how to setup an automatic receipt and remittance testcase, to demonstrate the complete credit card transaction flow, i.e. authorization and capture. This testcase is done entirely in Oracle Receivables. Note that credit card transactions can also be initiated from Order Management through Order Capture, and from online purchases through iStore.

Create Transactions

1. 2. 3.

Navigate to Transactions form, and enter an invoice transaction. If youve set up defaults earlier for this customer, the credit card payment method and information should automatically default. You may enter or update the payment method, add or select new credit card numbers. Optionally, choose an IMMEDIATE payment term. This ensures the transaction will be due when you submit an automatic receipt batch.

Create Automatic Receipt Batch

1. 2. 3. 4.

Navigate to the Receipt Batches form and choose a Batch Type of Automatic. Enter a Payment Method associated with the Credit Card receipt class. Choose Create. Receivables displays the Request ID for the concurrent process. Upon completion of the concurrent process, receipts are created and reported on the Automatic Receipts Execution Report.

Approve Automatic Receipt Batch

1. 2. 3. 4.

5.
Remit Batch

Navigate to the Receipt Batches form and query the batch of automatic receipts to approve. You cannot add new transactions to this batch, but if you want to deselect or update transactions within the batch, choose Maintain. Choose Approve. Receivables displays the Request ID for the concurrent process. Upon completion of the concurrent process, Automatic Receipts that do not require confirmation will close the invoices they are paying. Receipts that require confirmation close invoices when they are confirmed. The Automatic Receipt Execution report lists the number and amount of automatic receipts approved in this batch. Optionally, you may choose to Create, Approve and Format your automatic receipt batch, in the same request.

1. 2. 3. 4. 5.

Navigate to the Remittances form and Enter the Batch and GL Date. Enter the Credit Card Receipt Class, associated Payment Method and Remittance Bank information for this batch Choose Auto Create and Receivables will select the approved items for credit card capturing. To approve and format this remittance batch, check the Approve and Format check boxes. Receivables displays the Request ID for the concurrent process. Upon completion of the concurrent process, the remittances are created and reported on the Automatic Remittances Execution Report. The status of Captured receipts will be updated to Remitted source:Excerpts from Oracle Receivables Credit Card Processing High Level Design document

4 Credit Card Processing Oracle/Client Confidential - For internal use only

AR and iPayment APIs


Oracle Receivables 11i in its current release (up to 11.5.6 as of this writing), maintains the PMT_UTIL package to communicate with the iPayment ECServlet for card processing. Depending on the version, there may be one or two code trees for this package, one delivered by IBY (Oracle iPayment) and the other by AR (Oracle Receivables). To process credit cards correctly, ensure the correct package (AR) is installed. Oracle Receivables delivers the PMT_UTIL package through the objects ARPSUTLB.pls and ARPSUTLS.pls. Oracle iPayment maintains an equivalent package used for 11i APIs, called the IBY_PAYMENT_ADAPTER_PUB and is found in files ibyppad[bs].pls. Note that AR currently uses the 3i API.

Determining PMT_UTIL version

SELECT OWNER, NAME, TEXT FROM DBA_SOURCE WHERE TEXT LIKE %Header% AND NAME = PMT_UTIL Correct version of PMT_UTIL (check for latest versions in ARU) APPS PMT_UTIL /* $Header: ARPSUTLS.pls 115.3 2000/10/23 12:29:45 pkm ship APPS PMT_UTIL /* $Header: ARPSUTLB.pls 115.6 2000/10/23 12:06:49 pkm ship

$*/

$*/

If version is listed as IBY, then apply the latest patch containing the ARSUTLB.pls and ARSUTLS.pls objects. For example, Incorrect version of PMT_UTIL APPS PMT_UTIL /* $Header: ibyputls.pls 115.2 2000/01/06 16:34:10 pkm ship APPS PMT_UTIL /* $Header: ibyputlb.pls 115.4 2000/01/06 16:34:04 pkm ship

$ */

$ */

5 Credit Card Processing Oracle/Client Confidential - For internal use only

Verifying iPayment function


Oracle Receivables interacts with Oracle iPayment, which relays information to and from the 3rd party payment system. Other than the troubleshooting tips provided here, the detailed diagnosis of these interactions is beyond the scope of this document . Refer these issues to the

Oracle iPayment development team.


Oracle iPayment patches

Most issues are known or have existing fixes. Before contacting the Oracle iPayment team, check to make sure you have the latest Oracle iPayment patches. See the following website: http://ipayment.us.oracle.com/docs/bugfixes.html
Oracle iPayment FAQs

A good resource is the FAQs on the Oracle iPayment website: http://ipayment.us.oracle.com, an example of which is provided below:

Why is the PL/SQL Payment Request failing (return status "U")? Most common cause is wrong configuration in Oracle iPayment. If you do not see any other error message or status code, its probably cased by wrong Oracle iPayment URL property value (see item 4 below). You could check component by component which part is failing: 1) Try CyberCash servlet URL from browser, it should return "Document Contains no Data" or some error message. That means CyberCash servlet is up and running 2) Try ECServlet URL from a browser. You should see some error message (for example, "mandatory field is missing"). That means ECServlet is up and running. 3) Check Payee configuration, makes sure CyberCashs BASE URL point to the correct URL in 1) 4) Check Oracle iPaymentURL under Properties section, make sure the value has 2) URL. A common problem we have encountered is that the ECAPP Servlet URL you give to Oracle iPayment should have a trailing question mark in Oracle iPayment 11.5.1 release (you dont need to have the trailing quesiton mark from 11.5.2), as in: "http://localhost:8080/servlet/ecapp? " If you do not see behavior in 1) or 2), or URLs in 3) and 4) are not correct, check your configuration and consult Oracle iPayment document (Concepts and Procedures, Implementation Guide) to fix configuration problems. Starting from release 11.5.2, Oracle iPayment provides "Operations" tab in Oracle iPayment UI admin page. You could try an authorization operation to check whether Oracle iPayment is properly configured. Source: Oracle iPayment.us.oracle.com

6 Credit Card Processing Oracle/Client Confidential - For internal use only

Receivables Utilities (oraauth.sql and oracapture.sql)


Oracle Receivables development provides these utilities to verify the correct functioning of the PMT_UTIL package and its interaction with the iPayments ECServlet. Essentially, the PMT_UTIL package takes ARs request parameters, creates a payment request URL to send to iPayment's ECServlet and then parses the ECServlet's response. Oraauth.sql performs an authorization, while oracapture.sql performs funds capture. When you execute these sql statements, it performs the same call as the automatic receipts and remittance program, to ARs PMT_UTIL package. This facilitates troubleshooting, as you can run directly, i.e. dont need to run as a concurrent program. 1. 2. Replace the base url with the same value in the profile ICX: Payment Server URL Replace values for the In parameters, noting the following: 4111111111111111 is a test card number provided by Cybercash. When using this number, ensure the amount of the transaction is outside the range of $1000 to $2000. [Optional] Preface the order_no with AR_, followed by any alphanumeric string, e.g. AR_123 When using a test card number, use any future date for the card expiration parameter: OapfPmtInstrExp Use merchant id provided by the Oracle iPayment administrator for the OapfStoreId. This corresponds to the active PayeeID from the iby_payee table in iPayment.

3. 4.

Start a sql session and execute, e.g. SQL>@oraauth.sql. See sample output for a successful authorization.

oraauth.sql

set serveroutput on size 1000000 declare /*** Replace "ap809sun.us.oracle.com" with your base URL i.e. <machine_name>.com:<port> ***/ baseurl varchar2(200):= 'http://ap015sun.us.oracle.com:8181/servlet/ecapp'; inparam PMT_UTIL.in_oraauth; outparam PMT_UTIL.out_oraauth; begin inparam.OapfOrderId := '&Order_no'; inparam.OapfCurr := 'usd'; inparam.OapfPrice := '70.00'; inparam.OapfStoreId := '&merchant_id'; --inparam.OapfAuthType := 'authcapture'; inparam.OapfAuthType := 'authonly'; inparam.OapfPmtType := 'CREDITCARD'; inparam.OapfPmtInstrID := '4111111111111111'; --inparam.OapfPmtInstrID := '1234567890123122'; inparam.OapfPmtInstrExp := '12/01'; PMT_UTIL.oraauth(baseurl, inparam, outparam); dbms_output.put_line('OapfStatus:'|| outparam.OapfStatus); dbms_output.put_line('OapfStatusMsg:'|| outparam.OapfStatusMsg);

7 Credit Card Processing Oracle/Client Confidential - For internal use only

dbms_output.put_line(OapfOrderId:||outparam.OapfOrderId); dbms_output.put_line(OapfTrxnType:||outparam.OapfTrxnType); dbms_output.put_line(OapfApprovalCode:|| outparam.OapfApprovalCode); dbms_output.put_line(OapfRefcode:||outparam.OapfRefcode); dbms_output.put_line(OapfAVSCode:||outparam.OapfAVSCode); dbms_output.put_line(OapfTrxnDate:||outparam.OapfTrxnDate); dbms_output.put_line(OapfPmtInstrType:||outparam.OapfPmtInstRType); dbms_output.put_line(OapfErrLocation:||outparam.OapfErrLocation); dbms_output.put_line(OapfVendErrCode:||outparam.OapfVendErrCode); dbms_output.put_line(OapfVendErrMsg:|| outparam.OapfVendErrMsg); dbms_output.put_line(OapfAcquirer:|| outparam.OapfAcquirer); dbms_output.put_line(OapfAuxMsg:|| outparam.OapfAuxMsg); dbms_output.put_line(OapfSplitId:|| outparam.OapfSplitId); dbms_output.put_line(OapfMerchBatchId:|| outparam.OapfMerchBatchId); --dbms_output.put_line(OapfAuthStatusCode:|| outparam.OapfAuthStatusCode); --dbms_output.put_line(OapfCapStatusCode:|| outparam.OapfCapStatusCode); dbms_output.put_line(OapfCardCurr:|| outparam.OapfCardCurr); dbms_output.put_line(OapfCurrConvRate:|| outparam.OapfCurrConvRate); dbms_output.put_line(OapfTerminalId:|| outparam.OapfTerminalId); end; /
oracapture.sql

set serveroutput on size 1000000 declare baseurl varchar2(200):= http://ap015sun.us.oracle.com:8181/servlet/ecapp?; inparam PMT_UTIL.in_oracapture; outparam PMT_UTIL.out_oracapture; begin inparam.OapfOrderId := &id; inparam.OapfCurr := USD; inparam.OapfPrice := 70.00; inparam.OapfPmtType := CREDITCARD; inparam.OapfStoreId := 5001; PMT_UTIL.oracapture(baseurl, inparam, outparam); dbms_output.put_line(OapfStatus:|| outparam.OapfStatus); dbms_output.put_line(OapfStatusMsg:|| outparam.OapfStatusMsg); dbms_output.put_line(OapfVendErrMsg:|| outparam.OapfVendErrMsg); dbms_output.put_line(OapfTrxnType:||outparam.OapfTrxnType); dbms_output.put_line(OapfTrxnDate:||outparam.OapfTrxnDate); dbms_output.put_line(OapfPmtInstrType:||outparam.OapfPmtInstrType); dbms_output.put_line(OapfRefCode:||outparam.OapfRefCode); dbms_output.put_line(OapfErrLocation:||outparam.OapfErrLocation); dbms_output.put_line(OapfVendErrmsg:||outparam.OapfVendErrmsg); end; /
Sample Output

Enter value for order_no: AR_123 old 7: inparam.OapfOrderId := &Order_no; new 7: inparam.OapfOrderId := AR_123; Enter value for merchant_id: 1 old 10: inparam.OapfStoreId := &merchant_id; new 10: inparam.OapfStoreId := 1; OapfStatus:0 OapfStatusMsg:

8 Credit Card Processing Oracle/Client Confidential - For internal use only

OapfOrderId: OapfTrxnType:2 OapfApprovalCode: OapfRefcode:019 OapfAVSCode:Y OapfTrxnDate: OapfPmtInstrType:Visa OapfErrLocation: OapfVendErrCode: OapfVendErrMsg: OapfAcquirer: OapfAuxMsg:Financial Institution Response: authorization approved and captured. OapfSplitId: OapfMerchBatchId: OapfCardCurr: OapfCurrConvRate: OapfTerminalId: PL/SQL procedure successfully completed.

Accessing iPayment ECServlet directly

You can directly access the iPayment ECServlet by constructing a URL through a standard web browser. For example, paste the following text in the URL of a standard browser, you would get the output below, for a successful authorization. Replace the parameters as you would in oraauth.sql. Paste complete text in browser URL within Applications firewall http://ap031sun:8050/ojsp/ecapp?&OapfAction=oraauth&OapfPrice=50&OapfCurr=USD&Oap fStoreId=5001&OapfOrderId=AR_123&OapfAuthType=AUTHONLY&OapfPmtInstrID=411111 1111111111&OapfPmtInstrExp=12/01 Sample return output Results OapfTrxnDate: 2001-04-24 OapfStatus: PMT-0000 OapfApprovalCode: OJ53 OapfAcquirer: OapfRefcode: 00013692 OapfRiskThresholdVal: 60 OapfRiskStatus: 0 OapfVpsBatchId: OapfAuxMsg: Financial Institution Response: authorization approved. OapfAVScode: X OapfRiskyFlag: NO OapfRiskScore: 48 OapfTimestamp: 20010424175221 OapfOrderId: AR_1234 OapfTransactionId: 23081 OapfPmtInstrType: Visa OapfTrxnType: 2 OapfAuthcode: OJ53

9 Credit Card Processing Oracle/Client Confidential - For internal use only

Debug and Error Logs


This describes various log files that can help you isolate an issue with credit card processing.

AR Automatic Receipt logs

When you submit the automatic receipts or remittance programs, Oracle Receivables creates a concurrent request log and an execution report for completed requests. When troubleshooting errant programs, set the debug flag to generate more information in the request log. To run in debug mode, set the profile option AR: Enable Debug Message Output to Yes.

Example excerpt from automatic receipts log


... Generated payment server order id = [AR_1486] cc_url=[http://hostname.domain.com:8002/servlet/ecapp?] cc_pay_server_order_num=[AR_1486] cc_currency =[USD] cc_price =[15] cc_auth_type =[authonly] cc_pmt_type =[CREDITCARD] cc_pmt_instr_id =[4111111111111111] cc_pmt_instr_exp =[01/2002] cc_merchant_id =[7] cr_id = [1528], cr_amount = [15] Credit Card Authorization Status = [PMT-0000] cr[0] app[2] arzira: Current system time is 19-MAR-2001 15:31:16 ...

Apache access log

When troubleshooting, it is important to isolate whether a failure occurs at the Receivables program or the iPayment servlet. One way to verify if the correct parameters were passed to the iPayment ECServlet, is to view the apache access_log, located under the $APACHE_TOP. On NT servers, this would be in the <ORACLE_HOME>/iAS/Apache/Apache/logs directory In the access_log file, locate the particular transaction that you are troubleshooting, based on some selective criteria such as the transaction amount, eg. OapfOrderId=1100. Verify that the parameters and URL were correctly passed by the PMT_UTIL to the iPayment ECServlet. Example excerpt from access_log /servlets/oramipp_cyb/oramipp_cyb?OapfAction=oraauth&OapfNlsLang=&OapfPmtInstrID=41 11111111111111&OapfPmtInstrExp=04/2002&OapfPmtInstrDBID=AR_99&OapfPostalCode=3 0254&OapfCnty=&OapfCustName=John+Doe&OapfAuthType=AUTHONLY&OapfCity=Atlanta &OapfStoreId=5001&OapfState=GA&OapfPrice=12.73&OapfOrderId=1100&OapfCntry=&Oa pfCurr=USD&OapfRetry=no&OapfCVV2=&OapfAddr3=&OapfAddr2=&OapfAddr1=123 HTTP/1.0" 200 652 10.1.2.34 - - [07/Nov/2001:12:58:52 -0500] "POST /OA_HTML/ibyopauthresult.jsp HTTP/1.1" 200

10 Credit Card Processing Oracle/Client Confidential - For internal use only

Debug and Error logs, continued...

iPayment debug log

If you suspect an iPayment issue, youll need to provide log files to the iPayment group. To turn on iPayment debug flag and generate iPayment logs. 1) Go to iPayment UI Admin page 2) Pick "Properties" tag

3) Change the DebugFlag property to true value 4) Fill in error log and debug log pathnames. You need to click "Update" button again after you come back to Properties list screen, otherwise new values will not be set.

Heres an example excerpt from the iPayment debug log. This was for a successful authorization. PERFORMANCE-->(Wed Oct 24 13:06:15 PDT 2001) Method: oraPmtReq Elapsed time: 83 INFO-->(Wed Oct 24 13:06:15 PDT 2001)AuthService: status=3 INFO-->(Wed Oct 24 13:06:15 PDT 2001)ECSERVLETRESPONSE::mapStatusCode() Mapping code=IBY_20305 to 3i status code INFO-->(Wed Oct 24 13:06:15 PDT 2001)AuthService: response is generated. INFO-->(Wed Oct 24 13:06:15 PDT 2001)Calling release... INFO-->(Wed Oct 24 13:06:15 PDT 2001)Session released... PERFORMANCE-->(Wed Oct 24 13:06:15 PDT 2001) Method: oraauth Elapsed time: 355 INFO-->(Wed Oct 24 13:06:15 PDT 2001)=== ECServlet: exiting the service(oraauth) INFO-->(Wed Oct 24 13:06:15 PDT 2001)Time elapsed in the round trip: 355 (millis econds)

iPayment development may require both the debug log and the error log. The default names and locations are as follows: /tmp/iby_debuga.log /tmp/iby_errora.log

11 Credit Card Processing Oracle/Client Confidential - For internal use only

Error Codes
Oracle Receivables 11i , in its current release, uses the 3i API when interacting with Oracle iPayment. This page lists the division of message numbers by type of message and the Payment System Messages (0001 to 0008), commonly seen in autoreceipts log files. For a complete list of error codes, see Oracle Oracle iPayment 3i Administrators Guide v3.1.1.5 Part No. A75560-01

Oracle iPayment 3i Number 10000-19999 20000-29999 30000-39999 40000-49999 50000-59999 API)

Division of Message Numbers Module Invoice, Pay, and Synchronize API Messages PL/SQL Messages Administration Messages Utility Messages MIPP Messages (Authorize, Capture, Void, Return/Credit, and Close Batch

0001 - 0008 Payment System Messages

0001 Communication error. Transaction should be retried later.

Cause: The connection is broken between Oracle Oracle iPayment and the payment system. Action: Retry the operation later.
0002 Duplicate order ID.

Cause: The order ID has been used previously. Action: Enter a different order ID.
0003 Duplicate batch ID.

Cause: The batch ID has been used previously. Action: Enter a different batch ID.
0004 Mandatory fields required.

Cause: Mandatory fields are missing. Action: Provide all mandatory fields.
0005 Vendor specific error. Refer to OapfVendErrCode and OapfVendErrMsg for detailed vendor specific errors.

Cause: The system encountered a payment system-specific error. Action: Check OapfVendErrCode and OapfVendErrMsg fields for details.
0006 Batch partially succeeded.

Cause: Batch succeeded but some transactions failed. Action: Correct the failed transactions and include them in the next batch.
0007 Batch failed. Errors should be corrected and batch should be retried.

Cause: The batch failed completely. Action: Correct the error and retry the batch operation.
0008 Requested operation not supported.

Cause: Payment operations are not supported. Action: Check the Oracle Oracle iPayment 3i Developers Guide for payment operation availability of each payment system.

12 Credit Card Processing Oracle/Client Confidential - For internal use only

Error handling in 11i iPayment Implementation Guide

The 11i iPayment Implemention Guide lists the following additional messages for errors due to invalid or duplicate data:

In each payment request, a payment instrument from which the money is transferred to the payees account is involved. Generally this information i given by the end user of the electronic commerce application. Sometimes the end user might enter wrong instrument number or an instrument number that does not have enough funds. To detect these errors, iPayment provides two error codes that help electronic commerce applications to prompt the end user for correct information.

Table B2 Error codes and their description due to invalid data or duplicate data Error Code Description

IBY_0017 IBY_0019

Insufficient funds Invalid credit card/bank account number

Excerpt from 11i Ipayment Implementation Guide. Note that in Oracle Reeivables log files, these IBY error codes are translated into the equivalent PMT-xxxx error codes.

13 Credit Card Processing Oracle/Client Confidential - For internal use only

Frequently Asked Questions

I need to run a testcase consisting of more than one record for my automatic receipt batch. Are there other credit card numbers I can use?

Cybercash provides other test numbers, as described in their MCK Users Guide.

Visa: 4111111111111111 (one four and 15 ones) MasterCard: 5555555555554444 (12 fives and four fours) Amex: 378282246310005 Discover: 6011111111111117

How do I simulate common errors like a declined or expired credit card?

Cybercash uses the amount passed as a way to do system testing and for simulating common transaction errors. Typically, this amount is between $1000 and $2000. A complete list is included with the Cybercash MCK documentation. For example : $1100 $1101 Declined. Expired card.

How do I interpret theApache access log?

The Apache access log captures all accesses or hits to the webserver, and records an http status code that corresponds to each request. This can be useful in determining whether a request URL was properly formed or not. You may be familiar with the status code 404 Not Found returned by your web browser when you attempt to access a non-existent page. A successful hit should have a status code 200. For a list of http status codes, see WEBIV note 70037.1. The following is a list of the first-digit definitions for these http status codes. 1xx: Informational - Request received, continuing process 2xx: Success - The action was successfully received, understood, and accepted 3xx: Redirection - Further action must be taken in order to complete the request 4xx: Client Error - The request contains bad syntax or cannot be fulfilled 5xx: Server Error - The server failed to fulfill an apparently valid request

How can I find out the status of my transaction in iPayment? For example, how do I know whether a transaction has been authorized or captured?

The iPayment Administrator UI page provides a convenient way to access the status of an ipayment record. This is accomplished through the Follow-on Operation form under the Operation tab. The payment server order number serves as an identifier, which is stored as the tangible_id in the iPayment (iby) tables. Note that this form provides the iPayment Administrator with a way of doing follow-on operations, such as to perform a capture on a previous authorization. See following screenshot of the UI.

14 Credit Card Processing Oracle/Client Confidential - For internal use only

15 Credit Card Processing Oracle/Client Confidential - For internal use only

You might also like