This post is to more or less bring an end to this thread. The Zen Cart store I was working on is now LIVE and processing credit card transactions as expected.
I have used Zen Cart payment module v1.04 to support the CyberSource Payment Gateway.
I have unwisely spent a lot of time on the CyberSource HOP connection method as you can read from previous posts. Just before I was about to quit, I tried another connection method offered by CyberSource: SOP (Silent Order POST). It was configured, tested and working in a few days.
According to CyberSource documentation, SOP is a customized implementation of the Hosted Order Page used as an http POST API. The order process remains unchanged, but the customer sees your own custom order, receipt and error pages. You also need an SSL Certificate install on the store server.
Should you have no choice, like in my case, where the customer already had a signed agreement with Bank of America and CyberSource, I would suggest using the SOP method as your best selection. Also, all passwords needed for user’s as well as merchant admin logins will be sent through a secure connection (SSL). This is not the case if you use the standard CyberSource HOP connection method.
Read very carefully the CyberSource Silent Order POST User’s Guide downloaded from the CyberSource Web site: https://www.cybersource.com/support_center/implementation/downloads/silent_order_post/
Do not expect much from CyberSource Tech Support. I have experienced condescendence and contempt. They just do not care about you the customer. The phone service is useless. E-mail contact provides better results.
Here are my suggestions:
1. Obtain the Payment Module v1.04
Download from http://www.motwo.com/cybersource_v1.04.zip (unknown contributor)
The payment module v1.04 package contains 4 php files and 1 Readme.txt file.
The HOP.php was included in the package as an example and is not usable for your test.
You will have to obtain a newly generated version from the CyberSource Business Center.
You need an open account with CyberSource. I beleive CyberSource also offers temporary test accounts for developpers.
Be careful in installing the files in the proper Zen Cart host directories. Use the same directory structure as found in the zip file.
2. Obtain a newly generated version of HOP.php
This file is a library of 19 php functions as well as your private/public key set.
Without a newly generated key set you will be denied access to the CyberSource server and unable to submit test transactions. At or near line 166, you will need also to enter your CyberSource account number “function getMerchantID() { return “vxxxxxxx”; }”
“vxxxxxxx” is your CyberSource account number.
To obtain the new HOP.php go to the CyberSource Business Center.
From the left bar menu:
Settings >> HOP Security >> go down to the Generate Security Script and select the PHP programming language button, then click Submit.
Save the downloaded file (HOP.php) on your local client to later upload to Zen Cart host.
3. Install the cs module in Zen Cart Admin
Go to Zen Cart >> Admin >> Module >> Payment
Be careful here, since you have 2 “Credit Card” modules listed under the column titled Modules.
Only the one with “cs” under the next right column is needed. All other modules should be left in the non active mode.
Select the proper cs module and click “+Install” in the upper right box.
The Login Username is your CyberSource Account no. (vxxxxxxxx).
Transaction mode is “test”
Transaction method is “Credit Card”
If you cannot see the cs module in the list of modules, it means that one or more of the 4 php files are not uploaded in the proper directory on the Zen Cart host server.
4. Install a SSLCertificate on the Zen Cart Host
You may also be required by your host provider to obtain a dedicated IP address.
5. CyberSource and Zen Cart settings
CyberSource Silent Order POST User’s Guide provides suggested Business Center settings.
Zen Cart settings are entered through the Admin function.
Leave your CyberSource account in test mode until all your test scenarios are completed and you are ready to go LIVE.
Best of luck,
deBeaujeu