Advanced Configuration Information
Using Alternate Server Properties
Use the serverURL and namespaceURI properties if CyberSource changes the convention used to specify the server URL and namespace URI, but has not updated the client yet. With these properties, you will be able to configure your existing client to use the new server and namespace conventions required by the CyberSource server.
For example, these are the server URLs and namespace URI for accessing the CyberSource services with the Simple Order API 1.18:
lInternet endpoint: https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor
lAkamai endpoint: https://ics2wstesta.ic3.com/commerce/1.x/transactionProcessor
nProduction server URLs:
lInternet endpoint: https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
lAkamai endpoint: https://ics2wsa.ic3.com/commerce/1.x/transactionProcessor
lIndia endpoint: https://ics2ws.in.ic3.com/commerce/1.x/transactionProcessor
urn:schemas-cybersource-com:transaction-data-1.18.
If you view the above URLs in a web browser, a list of the supported API versions and the associated schema files are displayed.
Configuring for Multiple Merchant IDs
If you have multiple merchant IDs, or if you are a reseller handling multiple merchants, you can set different properties settings for different merchant IDs in the Properties object that you pass to runTransaction(). When using the samples provided in the client package, set the properties in cybs.properties file.
To specify the settings for a specific merchant, all the properties except merchantID can be prefixed with "<merchantID>.". The merchant ID is case sensitive. To enable logging only for merchant123, set the enableLog property to true for all requests that have merchant123 as the merchant ID:
merchant123.enableLog=true
enableLog=false
The client disables logging for all other merchants.
Although the properties in the Properties object passed to runTransaction() normally take precedence over the System properties, you can specify the settings that the client uses with the System properties. A system property will be used only if the Properties object passed to runTransaction() does not already include that property.
To use System properties for merchant123, prefix each system property with cybs., for example:
java -Dcybs.enableLog=false -Dcybs.merchant123.enableLog=true
myApplication
If you are using a Oracle Java SDK version earlier than 1.4.0 or an IBM Java SDK, you may exceptions when attempting to connect to external sites with HTTPS.
If you encounter the following exception message when testing the client, follow the procedure for your SDK:
java.net.MalformedURLException: unknown protocol: https
Oracle Java SDK version earlier than 1.4.0
This procedure is only a guideline. For the latest information, consult the Oracle JSSE documentation.
Step 1Download the Oracle JSSE from http://java.sun.com/products/jsse/.
Step 2Extract the following files from the Oracle JSSE package:
jcert.jar
jnet.jar
jsse.jar
Step 3Copy the jar files into your Java installation's jre/lib/ext directory.
Step 4Open jre/lib/security/java.security and locate the following line with the highest value for N:
security.provider.N=<some provider class name>
Step 5Add the following line where NN is equal to N + 1:
security.provider.NN=com.sun.net.ssl.internal.ssl.Provider
Step 6Save and close the file.
This procedure is only a guideline. For the latest information, consult the IBMJSSE documentation.
Step 1Download the IBMJSSE from IBM’s web site or obtain it from your IBM development kit CDs.
Step 2Extract the ibmjsse.jar file.
Step 3Obtain the ibmpkcs.jar file.
The file should be included in the IBM development kit.
Step 4Copy both jar files into your Java installation's jre/lib/ext directory.
Step 5Open jre/lib/security/java.security and locate the following line with the highest value for N:
security.provider.N=<some provider class name>
Step 6Add the following line where NN is equal to N + 1:
security.provider.NN=com.ibm.jsse.JSSEProvider
Step 7Save and close the file.
Importing the Root CA Certificate
If you encounter this exception message when testing the client, you must perform the following steps to import the root CA certificate into cacerts:
javax.net.ssl.SSLException untrusted server cert chain
Step 1At a command prompt, go to the main client directory where the entrust_ssl_ca.cer file is located.
Step 2Type the following text without line breaks:
keytool -import -alias entrust_ssl_ca
-keystore <JAVA_HOME>/jre/lib/security/cacerts
-file entrust_ssl_ca.cer
where <JAVA_HOME> is the path to your Java installation.
Note that keytool is a utility included in the Java SDK.
Step 3When prompted, enter the keystore password.
The default password is usually changeit. You have successfully imported the certificate.