[ic] CyberCash 3.2 and Interchange 4.5.5 problems

Ben Humphrey ben@humphrey.net
Fri, 1 Sep 2000 12:45:56 -0700


Hi folks,

I'm a new user of MiniVend/Interchange and I've had a heck of a time
integrating Cybercash into Interchange 4.5.5.  Maybe others are also
struggling or have figured it out.

Here's what I have done so far:
- Set up a test account with CyberCash
- Downloaded the CyberCash 3.2.0.6 Merchant Connection Kit
- Tested it successfully through their cgi pages
- copied the merchant_conf and *.pm files into Vendroot/lib and
reconfigured the embedded paths
- uncommented the CYBER_CONFIGFILE, CYBER_VERSION and CYBER_MODE lines in
catalog.cfg and added appropriate values

It didn't work and after turning on a bunch of debugging, I found that
there was a problem with the encryption routines.  After digging through
the mailing list, I found a description of the same problem, so I
downloaded different CyberCash perl modules from
http://minivendcybercash.homestead.com/index.html into Vendroot/lib and
updated those paths.

That got me to the point where I was definately communicating with
CyberCash, but still couldn't successfully authorize.  I found, through
turning on the CyberCash debug routines, that some of the fields weren't
getting passed into CyberCash.  The fields that *were* being passed are:
cpi.card-exp, cpi.card-zip, cpi.card-address, cpi.card-state,
cpi.card-country, cpi.card-city.  The fields that were not passed were
cpi.card-name and cpi.card-number.

I found that the cpi.card-name was built from the b_name variable, but
coundn't find that being initialized anywhere within Interchange.  Instead
of creating it from b_fname and b_lname and storing it in the database (the
smart thing) I did a bad hack and just removed all references to b_fname
and changed all references from b_lname to b_name and updated the
databases.  This works in that now cpi.card-name is being passed to
CyberCash.

I'm still not getting cpi.card-number passed to CyberCash.  I believe it is
getting removed after encryption in Vend::Order::encrypt_standard_cc even
though I have set CreditCardAuto to No in catalog.cfg and have made sure
that "keep" follows "&credit_card=standard" in etc/profiles.order.

I have not yet implemented pgp, hoping to do that after I get the basic
communication layer working, so perhaps that's my problem.

I tried other things like updating some of my Interchange source files
through CVS so now I'm running a bastardized version somewhere between
4.5.5 and 4.5.6.  I tried setting MV_PAYMENT_MODE to minivend_test but
never got good error info from it.

Here's the pertinent lines in my current catalog.cfg:

#Variable  MV_PAYMENT_MODE   minivend_test

# Uncomment to use creditCardAuto if you want, now handled better in
# order profiles with "&credit_card=standard".
CreditCardAuto      No

# These are usually all you need for CyberCash 3
# Uncomment and edit to suit; make sure you remove CreditCardAuto somehow
#
CyberCash       yes
Variable         CYBER_CONFIGFILE    /usr/local/minivend/lib/merchant_conf
Variable         CYBER_VERSION       3.2
Variable         CYBER_MODE          mauthcapture

#ifdef CYBER_MODE
Variable         MV_PAYMENT_MODE     mauthcapture
CreditCardAuto   No
#endif

EncryptProgram   __ENCRYPTOR__

Anybody have any hints for me to follow?  Does anyone have Interchange and
CyberCash working together?

Thanks for any info.
-Ben Humphrey